博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
resultful风格接口
阅读量:6293 次
发布时间:2019-06-22

本文共 1640 字,大约阅读时间需要 5 分钟。

hot3.png

resultful风格接口

一、产生背景

 

   网络应用程序,越来越流行前端和后端的分离设计。当前的发展趋势是前端的设计层出不穷。比如:各种型号的手机、平板灯其他设计。因为必须要一种统一的机制方便不同的前端和后端进行通信。这就导致了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=RequestMethod.GET)
@RequestMapping(value="/{id}",method=RequestMethod.POST)
@RequestMapping(value="/{id}",method=RequestMethod.DELETE)
@RequestMapping(value="/{id}",method=RequestMethod.PUT)

 

2.参考例子

 

 
  1. @RequestMapping(value="/queryQuByTypeIdAndChaID/{questionTypeId}/{chapterId}",method=RequestMethod.GET,produces="text/html;charset=UTF-8")

  2. public void queryQuByTypeIdAndChaID(HttpServletRequest request,HttpServletResponse response,@PathVariable String questionTypeId,

  3. @PathVariable String chapterId ){

  4. }

六、参考连接

 

转载于:https://my.oschina.net/demons99/blog/2239957

你可能感兴趣的文章
Python模块学习:threading 多线程控制和处理
查看>>
第一章 企业项目开发--maven+springmvc+spring+mybatis+velocity整合
查看>>
bLock 回调 就是这么简单!
查看>>
HTML5 input placeholder 颜色 改动
查看>>
【转】Spring 4.x实现Restful web service
查看>>
第三十一篇:SOUI布局之相对于特定兄弟窗口
查看>>
分享我基于NPOI+ExcelReport实现的导入与导出EXCEL类库:ExcelUtility (续2篇-模板导出综合示例)...
查看>>
Spring MVC (Java),强制页面不缓存
查看>>
javascirpt 用英文逗号替换英文分号、中英文逗号或者回车
查看>>
LeetCode --- 57. Insert Interval
查看>>
微信支付curl出错及错误码解决方案
查看>>
Codeforces 41D Pawn 简单dp
查看>>
Android,使用Json发送数据中,使用的Java转义字符 KanKan原创
查看>>
php分享二十八:mysql运行中的问题排查
查看>>
关于EventSource的精华
查看>>
.NET领域最为流行的IOC框架之一Autofac
查看>>
IntelliJ IDEA使用记录
查看>>
所谓完整的linux系统包括哪些部分呢?【转】
查看>>
Swift中出现“no such module cocoa”的错误
查看>>
开关电源过流保护-打嗝模式
查看>>