RESTful

Posted xiaolige

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RESTful相关的知识,希望对你有一定的参考价值。

        rest的5种约束:
  • 使用客户/服务器模型:客户和服务器间通过一个统一的接口来互相通讯;
  • 层次化的系统:在一个rest系统中客户端并不会固定的与一个服务端打交道;
  • 无状态:在rest系统中,服务端不会保存客户的任何状态,客户端负责用户状态的维持,并在每次发送请求时,提供足够的信息;
  • 可缓存:可以恰当的缓存请求;
  • 统一的接口:

以前非REST时,我们的URI

         查询用户:http://localhost/user/query?id=1             - GET

         添加用户: http://localhost/user/insert                       - POST

         修改用户: http://localhost/user/update                    - POST

         删除用户: http://localhost/user/delete?id=1            - GET

REST

        查询用户:http://localhost/user/{id}         - GET

         添加用户: http://localhost/user                 - POST

         修改用户: http://localhost/user               - PUT

         删除用户: http://localhost/user                 - DELETE

响应状态码:

技术分享图片

java本身不支持put,delete请求,当发起这些请求时,可以接受,但请求参数接收不到,解决put请求参数为null:springMvc提供一个过滤器:

   <!-- 解决PUT请求的参数为null问题 -->

   <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>

解决delete请求参数为null:

   <!-- 通过POST请求传递参数,再 _method指定要转化的请求方式(DELETEPUT),最后转为DELETEPUT请求 -->

   <filter>

      <filter-name>HiddenHttpMethodFilter</filter-name>

      <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>

   </filter>

   <filter-mapping>

      <filter-name>HiddenHttpMethodFilter</filter-name>

      <url-pattern>/*</url-pattern>

   </filter-mapping>













以上是关于RESTful的主要内容,如果未能解决你的问题,请参考以下文章

PHP restful 接口

python之干什么可以走的路线

Restful,SAOP,SOA,RPC的基础理解

springmvc rest风格化案例

17-Django-Django REST framework-REST framework及RESTful简介