RE表象小号泰特贸易交接(REST)是一种架构风格定义的一组约束将被用于创建Web服务。 REST API是一种无需任何处理即可以简单灵活的方式访问 Web 服务的方式。
REST 技术通常比更强大的简单对象访问协议 (SOAP) 技术更受欢迎,因为 REST 使用的带宽更少,简单灵活,更适合互联网使用。它用于从 Web 服务获取或提供一些信息。通过 REST API 完成的所有通信仅使用 HTTP 请求。
在职的
请求以 Web URL 的形式从客户端发送到服务器,如 HTTP GET 或 POST 或 PUT 或 DELETE 请求。之后,响应以资源的形式从服务器返回,资源可以是 HTML、XML、图像或 JSON。但现在 JSON 是 Web 服务中最流行的格式。
在HTTP 中有五种常用在基于 REST 的架构中的方法,即 POST、GET、PUT、PATCH 和 DELETE。它们分别对应于创建、读取、更新和删除(或 CRUD)操作。还有其他不常用的方法,如 OPTIONS 和 HEAD。
- GET: HTTP GET 方法用于读取(或检索)资源的表示。在安全路径中,GET 返回 XML 或 JSON 格式的表示以及 HTTP 响应代码 200(OK)。在错误情况下,它最常返回 404(未找到)或 400(错误请求)。
- POST: POST 动词最常用于创建新资源。特别是,它用于创建从属资源。即,从属于某个其他(例如父)资源。创建成功后,返回 HTTP 状态 201,返回带有指向新创建资源的链接的 Location 标头,HTTP 状态为 201。
注意: POST 既不安全也不幂等。 - PUT:用于更新能力。但是,在资源 ID 由客户端而不是由服务器选择的情况下,PUT 也可用于创建资源。换句话说,如果 PUT 指向一个包含不存在的资源 ID 值的 URI。成功更新后,从 PUT 返回 200(如果未返回正文中的任何内容,则返回 204)。如果使用 PUT 进行创建,则在成功创建时返回 HTTP 状态 201。 PUT 不是安全操作,但它是幂等的。
- PATCH:用于修改功能。 PATCH 请求只需要包含对资源的更改,而不是完整的资源。这类似于 PUT,但主体包含一组指令,描述应如何修改当前驻留在服务器上的资源以生成新版本。这意味着 PATCH 主体不应该只是资源的修改部分,还应该是某种补丁语言,如 JSON Patch 或 XML Patch。 PATCH 既不安全也不幂等。
- DELETE:用于删除由 URI 标识的资源。成功删除后,返回 HTTP 状态 200 (OK) 以及响应正文。
幂等:幂等 HTTP 方法是可以多次调用而不会产生不同结果的 HTTP 方法。方法是只调用一次还是十次都没有关系。结果应该是一样的。同样,这仅适用于结果,而不适用于资源本身。例子,
C
1. a = 4 // It is Idempotence, as final value(a = 4)
// would not change after executing it multiple
// times.
2. a++ // It is not Idempotence because the final value
// will depend upon the number of times the
// statement is executed.
RESTful web services are very popular because they are light weight, highly scalable and maintainable and are very commonly used to create APIs for web-based applications.
参考资料:https://en.wikipedia.org/wiki/Representational_state_transfer