一、产生背景
网络应用程序,越来越流行前端和后端的分离设计。当前的发展趋势是前端的设计层出不穷。比如:各种型号的手机、平板灯其他设计。因为必须要一种统一的机制方便不同的前端和后端进行通信。这就导致了API结构的流行。其中Restful API是目前比较成熟的一套互联网应用程序的API设计理论。
二、简介
Restfule风格是一种软件架构风格,而不是标准,只是提供了一种设计原则和约束条件。主要适用于客户端和服务器端交互的软件。是基于http协议实现。目的是为了提高系统的可伸缩性,降低应用之间的耦合度,方便框架分布式处理程序。基于这个风格的软件可更加的简单、更有层次,更易于实现缓存的机制。
在resultful风格中,用户请求的url使用同一个URL而用请求方式:get/post/delete/put等方式对请求的处理方法进行区分。这样可以在前后台分离的开发中让前端开发人员不会对请求的资源地址产生混淆,形成一个统一的接口。
三、特点
(1)每种url代表了一种资源。
(2)客户端和服务器之间,传递这个资源的某种表现层。
(3)客户端通过四个http动词,对服务器资源进行操作。实现表现层状态的转化。
四、使用规定
在http协议中,四个表示操作方式的动词:GET/Post/put/Delete,他们分别对应四种基本操作。
Get用来获取资源。post用来新建立资源,也可以更新资源。put用来更新资源。Delete用来删除资源。
GET,对应select:是从服务器查询,可以在服务器通过请求的参数区分查询的方式。
POST,对应Create:在服务器新建立一个资源,调用insert操作。
PUT,对应update操作:在服务器更新资源,调用update操作。
PATCH,对应update操作,在服务器更新资源,客户端提供改变的属性。(目前JDK7没有实现,tomcat7也不行。)
DELETE,对应DELETE操作,从服务器删除资源,调用delete语句。
五、spring mvc中实现restfule风格接口
1.四种动作
Spring MVc 对resstful应用提供了以下支持。利用@RequestMapping 指定要处理请求的url模板和http请求的动作类型。利用@PathVariable将url请求模板中的变量映射到处理方法参数上。前台利用AJAX,在客户端发出put、delete动作的请求。
一般的应用格式如下:
@RequestMapping(value="/{id}",method=)
@RequestMapping(value="/{id}",method=)
@RequestMapping(value="/{id}",method=)
@RequestMapping(value="/{id}",method=)
2.参考例子
@RequestMapping(value="/queryQuByTypeIdAndChaID/{questionTypeId}/{chapterId}",method=,produces="text/html;charset=UTF-8")
public void queryQuByTypeIdAndChaID(HttpServletRequest request,HttpServletResponse response,@PathVariable String questionTypeId,
@PathVariable String chapterId ){
}
六、参考连接
理解RESTful架构
Spring框架之基于Restful风格实现的SpringMVC
Restful风格API接口开发springMVC篇
SpringMVC+Json构建基于Restful风格的应用