理解 REST

来源:互联网 发布:阿里巴巴查排名软件 编辑:程序博客网 时间:2024/06/06 03:07

REST (Representational State Transfer)

REST (Representational State Transfer) 网上比较容易理解的中文意译:表述性状态转移。

REST是为分布式系统而设计的一种架构风格。它不是一个标准,而是一套约束集合,例如无状态性,client/server关联性和统一
的接口。REST不是严格地关联HTTP,但通常会将它们联系在一起。

REST的原则

Resources(资源) 暴露容易理解的目录结构 URIs。

Representations(表现形式) 将JSON或者XML表示成数据对象和属性。

Messages(消息通信) 使用显式的HTTP 方法(如,GET, POST, PUT, and DELETE)、。

Stateless (无状态) 在客户端和服务器的交互请求之间不存储上下文(context)。状态依赖限制并且限制可扩展性。客户端保持会话状态。

HTTP 方法

使用HTTP 方法来映射CRUD(create, retrieve, update, delete)操作到HTTP请求。

GET

获取信息。GET请求一定是安全和幂等的,意思是不管多次用一样的参数请求,结果是一样的。它们可以有副作用,但用户不期待它们,因此
它们不是关键的对系统的运行。请求也可以是片面的或有条件的。

获取一个id=1的地址:

GET /addresses/1

POST

用提供的实体在URI上请求资源。POST经常被用来创建一个新的实体,但它也可以被用来更新实体。

创建一个新地址:

POST /addresses

PUT

在一个URI上存储一个实体。PUT 可以创建一个新的实体或更新一个存在的实体。 一个PUT请求是幂等的。
幂等性是PUT的期望值与POST请求之间的主要差异。

修改id=1的地址:

PUT /addresses/1

注意:PUT替换一个存在的实体。如果仅提供一个数据元素的子集,其余将被空串或null替换。

PATCH

在URI上,仅更新指定实体的字段。一个PATCH请求是幂等的。

等幂的主要区别是PUT的期望,而不是POST请求。

PATCH /addresses/1

DELETE

移除请求的资源;尽管如此,资源不需要马上被移除。它可以是一个异步或长时间的操作。
删除一个id=1的地址:

DELETE /addresses/1

HTTP状态码

状态码指示HTTP请求的结果。
- 1XX - informational
- 2XX - success
- 3XX - redirection
- 4XX - client error
- 5XX - server error

Media(媒体)类型

AcceptContent-Type HTTP 头部可以被用来声明将被发送或在一个HTTP请求体的内容。客户端可以设置Acceptapplication/json 如果
正在请求一个JSON的响应。相反地,当发送数据时,设置Content-Typeapplication/xml 告诉客户端发送请求的数据是XML 。。。

译文:http://spring.io/understanding/REST

0 0
原创粉丝点击