什么是 REST? - Amazon AppSync
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

什么是 REST?

概括地说,表述性状态传输 (REST) 是一种软件架构,它对 API 的工作方式施加了条件。REST 最初是作为管理互联网等复杂网络上的通信的准则创建的。您可以使用基于 REST 的架构支持大规模的高性能且可靠的通信。您可以轻松进行实施和修改,从而为任何 API 系统提供可见性和跨平台可移植性。

API 开发人员可以使用多种不同的架构设计 API。遵循 REST 架构风格的 API 称为 REST API。实施 REST 架构的 Web 服务称为 RESTful Web 服务。RESTful API 术语通常是指 RESTful Web API。不过,您可以将 REST API 和 RESTful API 术语互换使用。

以下是 REST 架构风格的一些准则:

统一接口

统一接口是任何 RESTful Web 服务设计的基础。它表示服务器以标准格式传输信息。设置了格式的资源在 REST 中称为表示形式。该格式可能与服务器应用程序上的资源的内部表示形式不同。例如,服务器可以将数据存储为文本,但以 HTML 表示形式发送。

统一接口施加了 4 个架构限制:

  1. 请求应标识资源。它们使用统一资源标识符以实现该目的。

  2. 客户端在资源表示形式中具有足够多的信息,可以根据需要修改或删除资源。服务器发送进一步描述资源的元数据以满足该条件。

  3. 客户端收到有关如何进一步处理表示形式的信息。服务器发送自描述消息以实现该目的,这些消息包含有关客户端如何以最佳方式使用它们的元数据。

  4. 客户端收到完成任务所需的所有其他相关资源的信息。服务器在表示形式中发送超链接以实现该目的,以使客户端可以动态发现更多资源。

无状态

在 REST 架构中,无状态是指服务器独立于所有以前请求完成每个客户端请求的通信方法。客户端可以按任意顺序请求资源,并且每个请求都是无状态或与其他请求隔离。这种 REST API 设计限制意味着,服务器每次都能完全了解并完成请求。

分层系统

在分层系统架构中,客户端可以连接到客户端和服务器之间的其他授权中间设备,并且仍然会接收来自服务器的响应。服务器也可以将请求传送到其他服务器。您可以将 RESTful Web 服务设计为在具有多个层(例如安全性、应用程序和业务逻辑)的多个服务器上运行,这些层相互协作以完成客户端请求。这些层对客户端是不可见的。

可缓存性

RESTful Web 服务支持缓存,这是在客户端或中间设备上存储一些响应以缩短服务器响应时间的过程。例如,假设您访问的网站的每个页面上具有通用的页眉和页脚图像。每次您访问新的网站页面时,服务器都必须重新发送相同的图像。为了避免这种情况,客户端在第一次响应后缓存或存储这些图像,然后直接使用缓存中的图像。RESTful Web 服务使用将自身定义为可缓存或不可缓存的 API 响应以控制缓存。

什么是 RESTful API?

RESTful API 是两个计算机系统用于通过互联网安全地交换信息的接口。大多数业务应用程序必须与其他内部和第三方应用程序通信以执行各种任务。例如,要生成每月工资单,您的内部账户系统必须与客户的银行系统共享数据,以自动开具发票并与内部工时表应用程序进行通信。RESTful API 支持这种信息交换,因为它们遵循安全可靠且高效的软件通信标准。

RESTful API 是如何工作的?

RESTful API 的基本功能与浏览互联网相同。在客户端需要资源时,它使用 API 连接到服务器。API 开发人员在服务器应用程序 API 文档中解释了客户端应如何使用 REST API。以下是任何 REST API 调用的一般步骤:

  1. 客户端向服务器发送请求。客户端按照 API 文档以服务器理解的方式设置请求格式。

  2. 服务器对客户端进行身份验证,并确认客户端有权发出该请求。

  3. 服务器接收该请求,并在内部进行处理。

  4. 服务器向客户端返回响应。响应包含告诉客户端请求是否成功的信息。响应还包含客户端请求的任何信息。

根据 API 开发人员设计 API 的方式,REST API 请求和响应详细信息略有不同。