一.REST起源REST(Representational State Transfer)表象化状态转变(表述性状态转变),在2000年被提出,基于HTTP、URI、XML、JSON等标准和协议,支持轻量级、跨平台、跨语言的架构设计。是Web服务的一种新的架构风格(一种思想) 1.什么是轻量级:代码不被侵入(正例:SpringMVC中不用接口和继承,仅用注解完成。反例:Struts中每一个Action都要继承核心控制器),轻量级跟包大小无关。耦合性越低,越轻量。 二.REST架构的主要原则
符合上述REST原则的架构方式称为RESTful 1.URI和URL区别:URI:http:///users/ URL:http:///users/{user} (one for each user) 2.什么是无状态性:使得客户端和服务器端不必保存对方的详细信息,服务器只需要处理当前的请求,不需了解请求的历史。可以更容易的释放资源,让服务器利用Pool(连接池)技术来提高稳定性和性能。 三.RESTful介绍RESTful是一种常见的REST应用,是遵循REST风格的web服务,REST式的web服务是一种ROA(面向资源的架构)。 1.RESTful资源操作
2.接口示例: 2.1.传统URL请求格式:
2.2.RESTful请求格式: http://127.0.0.1/user/1 GET 根据用户id查询用户数据 http://127.0.0.1/user POST 新增用户 http://127.0.0.1/user PUT 修改用户信息 http://127.0.0.1/user DELETE 删除用户信息 3.响应设计原则:数据接收到即可使用,无需拆箱。 在一次请求中,content body仅仅用于传输数据。Header中存放描述请求或请求的元数据,例如 X-Result-Fields。 4.http响应状态码根据http响应码,判断请求状态,进而做出提醒。 四.RESTful的使用下面将用实际代码演示RESTful做增删改查的操作使用示例: 1.查询get:查询测试:2.新增post:新增测试:AJAX调用: 3.更新put:Service写法:更新测试:默认情况下,PUT请求是无法提交表单数据的,在Spring MVC项目中需要在web.xml中添加过滤器解决: <!-- 解决PUT请求无法提交表单数据的问题 --> <filter> <filter-name>HttpMethodFilter</filter-name> <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class> </filter> <filter-mapping> <filter-name>HttpMethodFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> 4.删除delete:删除测试:五.结语至此,RESTful的介绍和使用已经完成,RESTful已在各互联网公司接口定义中,成为主流的范式,RESTful减少了传统请求的拆装箱操作,结构清晰,在接口定义中受到前后端开发者的青睐。 |
|