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的一些总结的主要内容,如果未能解决你的问题,请参考以下文章
Java Web学习总结(44)—— RESTful 架构和 RESTful API 设计总结