SSM框架中RESTful风格的实现

REST这个词,是Roy Thomas Fielding在他2000年的博士论文中提出的。

如果一个架构符合REST原则,就称它为RESTful架构。

REST,即Representational State Transfer的缩写,我对这个词组的翻译是"表现层状态转化"。它是一种软件架构风格、设计风格,而不是标准,只是提供了一组设计原则和约束条件。它主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

对于资源的具体操作类型,由HTTP动词表示。

常用的HTTP动词有下面五个(括号里是对应的SQL命令)。

GET(SELECT):从服务器取出资源(一项或多项)。

POST(CREATE):在服务器新建一个资源。

PUT(UPDATE):在服务器更新资源(客户端提供改变后的完整资源)。

PATCH(UPDATE):在服务器更新资源(客户端提供改变的属性)。

DELETE(DELETE):从服务器删除资源。

还有两个不常用的HTTP动词。

HEAD:获取资源的元数据。

OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的。

SpringMVC的RESTful风格的实现是通过@RequestMapping 及@PathVariable 注解实现的。

/blog/1 HTTP GET =>  得到id = 1的blog

/blog/1 HTTP DELETE => 删除 id = 1的blog

/blog/1 HTTP PUT =>  更新id = 1的blog

/blog   HTTP POST =>  新增BLOG

GET /tickets - 获取 tickets 列表

GET /tickets/12 - 获取一个单独的 ticket

POST /tickets - 创建一个新的 ticket

PUT /tickets/12 - 更新 ticket #12

PATCH /tickets/12 - 部分更新 ticket #12

DELETE /tickets/12 - 删除 ticket #12

GET /tickets/12/messages - 获取ticket #12下的消息列表

GET /tickets/12/messages/5 - 获取ticket #12下的编号为5的消息

POST /tickets/12/messages - 为ticket #12创建一个新消息

PUT /tickets/12/messages/5 - 更新ticket #12下的编号为5的消息

PATCH /tickets/12/messages/5 - 部分更新ticket #12下的编号为5的消息

DELETE /tickets/12/messages/5 - 删除ticket #12下的编号为5的消息

具体为:

@RequestMapping(value = "/tickets/{ticketsId}",method = RequestMethod.POST)
public JsonResult<String> delTicketsId(@PathVariable String ticketsId){
	 ......
}

  

参考博客:

1.http://www.ruanyifeng.com/blog/2014/05/restful_api.html

2.http://www.ruanyifeng.com/blog/2011/09/restful

3.http://www.blogjava.net/soken/articles/371548.html

4.http://www.blogjava.net/soken/articles/371548.html

时间: 2024-08-29 12:51:17

SSM框架中RESTful风格的实现的相关文章

Java基于ssm框架的restful应用开发

Java基于ssm框架的restful应用开发 好几年都没写过java的应用了,这里记录下使用java ssm框架.jwt如何进行rest应用开发,文中会涉及到全局异常拦截处理.jwt校验.token拦截器等内容. 1.jwt工具类 直接贴代码了,主要包括jwt的sign.verify.decode三个方法,具体实现如下: package com.isoft.util; import java.util.Date; import com.auth0.jwt.JWT; import com.aut

SSM框架中使用Spring的@Transactional注解进行事务管理

一 介绍 在企业级应用中,保护数据的完整性是非常重要的一件事.因此不管应用的性能是多么的高.界面是多么的好看,如果在转账的过程中出现了意外导致用户的账号金额发生错误,那么这样的应用程序也是不可接受的 数据库的事务管理可以有效地保护数据的完整性(PS:关于数据库的事务管理基础可以参考我以前写过的这篇文章:http://www.zifangsky.cn/385.html),但是原生态的事务操作需要写不少的代码,无疑是非常麻烦的.在使用了Spring框架的应用中,我们可以使用@Transactiona

SSM框架中以注解形式实现事务管理

上一篇博文<SSM三大框架整合详细教程>详细说了如何整合Spring.SpringMVC和MyBatis这三大框架.但是没有说到如何配置mybatis的事务管理,实现开发中,事务是必不可少的.本篇作为对上一篇的补充,说明在SSM框架中如何使用注解的形式进行事务管理. 什么是事务? 在编写业务的过程中,会需要进行事务处理,当需要执行多条插入语句时,如果前几条成功,而最后一条失败,那么我们需要回滚数据库操作,保持数据的一致性和完整性,此时,就需要利用DB的事务处理.事务是恢复和并发控制的基本单位.

SSM框架中日志的打印和单例模式(六)

一.SSM框架中日志输出 1.src根目录下配置log4j.properties文件 #设置输出级别和输出目的地# log4j.rootLogger=info, stdout,logfile #把信息输出到控制台# log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.err log4j.appender.stdout.layout=org.apache.log4j.S

springMvc中restful风格的api路径中把小数点当参数,SpringMvc中url有小数点

在springMvc web项目中restful风格的api路径中有小数点会被过滤后台拿不到最后一个小数点的问题, 有两种解决方案: 1:在api路径中加入:.+ @RequestMapping("/findByIp/{ip:.+}") public Object test(@PathVariable String ip) { System.out.println(ip); return ""; } 但这种方式在web服务中感觉太过于鸡肋 所以在springMvc.

SSM框架中数据库无法连接的问题

首先是SSM框架中所有的配置都是没有问题的,而且项目在其他人的环境上也能正常访问数据库:那么最有可能的就是数据库版本的问题导致数据库连接不上,服务器给我的报错是: 15:37:25.902 [C3P0PooledConnectionPoolManager[identityToken->1hge4n5a4xz7ohp18togle|54666959]-HelperThread-#0] DEBUG c.m.v.resourcepool.BasicResourcePool - An exception

SSM框架中常用的注解

@Controller:在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Model 返回给对应的View 进行展示.在SpringMVC 中提供了一个非常简便的定义Controller 的方法,你无需继承特定的类或实现特定的接口,只需使用@Controller 标记一个类是Controller ,然后使用@RequestMapping 和@RequestPar

ssm框架中的乱码问题的解决

在搭建ssm框架过程中可能会出现乱码的问题,解决的最好方法就是不管在哪儿都设置为utf-8: 统一编码格式,所有的都设置为utf-8: 首先的就是将所有的请求设置为utf-8: 设置post请求的编码是在web.xml中设置一个过滤器,这个是ssm框架自带的,非常方便: <!-- Spring字符集过滤 --> 2. <filter> 3. <description>字符集过滤器</description> 4. <filter-name>enc

springMvc框架之Restful风格

method: @Controller @RequestMapping("/test") public String MyController{ @RequestMapping("/begin") public String hi(HttpServletRequest request){ String name=request.getParameter("name"); System.out.println(name); return "