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

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

什么是 REST?

从总体上讲,代表性状态转移 (REST) 是一种软件架构,它对API应的工作方式施加了条件。REST最初是作为管理互联网等复杂网络上的通信的指导方针而创建的。您可以使用REST基于架构的大规模支持高性能、可靠的通信。您可以轻松实现和修改它,从而为任何API系统带来可见性和跨平台可移植性。

API开发人员APIs可以使用几种不同的架构进行设计。APIs遵循REST建筑风格的被称为RESTAPIs。实现REST架构的 Web 服务被称为 RESTful Web 服务。该术语RESTfulAPI通常指RESTful网络APIs。但是,您可以RESTfulAPI互换使用这些术语RESTAPI。

以下是REST建筑风格的一些原则:

统一接口

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

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

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

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

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

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

无状态

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

分层系统

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

可缓存性

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

什么是 RESTfulAPI?

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

如何RESTfulAPIs运作?

a 的基本功能RESTfulAPI与浏览互联网相同。当需要资源API时,客户机使用与服务器联系。API开发人员在服务器应用程序API文档RESTAPI中解释了客户端应如何使用。以下是任何通RESTAPI话的一般步骤:

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

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

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

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

RESTAPI请求和响应的详细信息略有不同,具体取决于API开发人员的设计方式API。