RESTful的一些总结

Posted 走慢一点点

tags:

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

RESTful Web Service

REST是什么

RESTful是什么

REST 架构的主要原则

补充:URI和URL

一切皆为资源

在 REST 的定义中,一个 Web 应用总是使用固定的 URI 向外部世界呈现一个资源。
它认为Web是由一系列的抽象资源组成,这些抽象的资源具有不同的具体表现形式。
譬如,定义一个资源为photo,含义是照片,它的表现形式可以是一个图片,也可以是一个.xml的文件,其中包含一些描述该照片的元素,或是一个html文件。

REST接口定义

资源操作

我们在 Web 应用中处理来自客户端的请求时,通常只考虑 GET 和 POST 这两种 HTTP 请求方法。实际上,HTTP 还有 HEAD、PUT、DELETE 等请求方法。而在 REST 架构中,用不同的 HTTP 请求方法来处理对资源的 CRUD(创建、读取、更新和删除)操作:

若要在服务器上创建资源,应该使用 POST 方法。 
若要检索某个资源,应该使用 GET 方法。 
若要更改资源状态或对其进行更新,应该使用 PUT 方法。 
若要删除某个资源,应该使用 DELETE 方法。

经过这样的一番扩展,我们对一个资源的 CRUD 操作就可以通过同一个 URI 完成了:

读取) [GET] http://www.example.com/photo/logo
仍然保持为 [GET] http://www.example.com/photo/logo

(创建)http://www.example.com/photo/logo/create
改为 [POST] http://www.example.com/photo/logo

(更新)http://www.example.com/photo/logo/update
改为 [PUT] http://www.example.com/photo/logo

(删除)http://www.example.com/photo/logo/delete
改为 [DELETE] http://www.example.com/photo/logo

从而进一步规范了资源标识的使用。

通过 REST 架构,Web 应用程序可以用一致的接口(URI)暴露资源给外部世界,并对资源提供语义一致的操作服务。这对于以资源为中心的 Web 应用来说非常重要。

无状态性

最佳实践

REST接口设计

响应设计

响应示例

指定响应的属性字段

补充:http响应状态码

SpringMVC实现RESTful服务

查询资源示例

新增资源示例

更新资源示例


默认情况下,PUT请求是无法提交表单数据的,需要在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>

删除资源示例

需要在web.xml中添加过滤器解决DELETE请求无法提交表单数据的问题:

    <!-- 
        将POST请求转化为DELETE或者是PUT
        要用_method指定真正的请求参数
     -->
    <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的一些总结的主要内容,如果未能解决你的问题,请参考以下文章

键盘用的手感不一样 跟新和旧有啥关系?

Laravel 开发 RESTful API 的一些心得

RESTful学习笔记

Java Web学习总结(44)—— RESTful 架构和 RESTful API 设计总结

Java Web学习总结(44)—— RESTful 架构和 RESTful API 设计总结

Restful接口调用方法超详细总结