📜  REST API(介绍)

📅  最后修改于: 2022-05-13 01:58:11.226000             🧑  作者: Mango

REST API(介绍)

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。

  1. GET: HTTP GET 方法用于读取(或检索)资源的表示。在安全路径中,GET 返回 XML 或 JSON 格式的表示和 HTTP 响应代码 200(OK)。在错误情况下,它最常返回 404(未找到)或 400(错误请求)。
  2. POST: POST 动词最常用于创建新资源。特别是,它用于创建从属资源。也就是说,从属于某个其他(例如父)资源。成功创建后,返回 HTTP 状态 201,返回 Location 标头,其中包含指向具有 201 HTTP 状态的新创建资源的链接。
    注意: POST 既不安全也不幂等。
  3. PUT:用于更新能力。但是,在客户端而不是服务器选择资源 ID 的情况下,PUT 也可用于创建资源。换句话说,如果 PUT 是指向一个包含不存在资源 ID 值的 URI。成功更新后,从 PUT 中返回 200(如果没有返回正文中的任何内容,则返回 204)。如果使用 PUT 创建,则在成功创建时返回 HTTP 状态 201。 PUT 不是安全操作,但它是幂等的。
  4. PATCH:用于修改能力。 PATCH 请求只需要包含对资源的更改,而不是完整的资源。这类似于 PUT,但主体包含一组说明,描述如何修改当前驻留在服务器上的资源以生成新版本。这意味着 PATCH 主体不应该只是资源的修改部分,而是某种补丁语言,如 JSON Patch 或 XML Patch。 PATCH 既不安全也不幂等。
  5. 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.


参考:https://en.wikipedia.org/wiki/Representational_state_transfer