REST风格的Web服务

了解REST

REST(Representational State Transfer)是由Roy Fielding于2000年在他的博士论文中引入和定义的。REST是设计分布式系统的架构风格。这不是一个标准,而是一系列约束条件,如无状态,客户端/服务器关系,统一接口。REST与HTTP并不严格相关,但通常与它相关联。

REST的原则

  • 为每个资源设置容易理解的目录结构URI。
  • 通过JSON或XML进行数据传输。
  • 使用HTTP的方法进行资源访问(例如,GET,POST,PUT和DELETE)。
  • 无状态的服务设计,服务器端不应保存过多上下文状态,即每个请求都是独立的。

HTTP方法

使用HTTP方法将CRUD(创建,检索,更新,删除)操作映射到HTTP请求。

GET

检索信息。GET请求必须是安全且幂等的,这意味着无论使用相同的参数重复多少次,结果都是一样的。他们可能有副作用,但用户不希望那样,所以他们不能是对系统至关重要的操作。请求也可以是部分或有条件的。

检索ID为1的地址:
GET /addresses/1

POST

请求URI中的资源用提供的实体做某事。通常,POST被用来创建一个新的实体,但它也可以用来更新一个实体。

创建一个新地址:
POST /addresses

PUT

将实体存储在URI中。PUT可以创建一个新实体或更新现有实体。PUT请求是幂等的。幂等性是PUT请求与POST请求之间的主要区别。

修改ID为1的地址:
PUT /addresses/1

PATCH

只更新URI中实体的指定字段。PATCH请求是幂等的。幂等性是PUT请求与POST请求之间的主要区别。

更新ID为1的地址:
PATCH /addresses/1

DELETE

要求删除资源;但是,资源不必立即删除。它可能是一个异步或长时间运行的请求。

删除ID为1的地址:
DELETE /addresses/1

HTTP状态码

状态码指示HTTP请求的结果。

  • 1XX - 信息
  • 2XX - 成功
  • 3XX - 重定向
  • 4XX - 客户端错误
  • 5XX - 服务器错误

Media types

在HTTP请求中的Accept和Content-TypeHTTP标头可用于描述请求内正在发送或请求的内容。客户端可能会设置Accept为application/json是否以JSON请求响应。相反,在发送数据时,设置Content-Type为application/xml则告诉客户端请求中发送的数据是XML。

一句话总结

URL定位资源,用HTTP动词(GET,POST,DELETE,DETC)描述操作。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容