什么是 REST API?

复制 URL

REST API 是一种遵循 REST 架构设计原则的 应用编程接口(API )。REST 是表述性状态传递的英文缩写,涵盖一系列有关如何构建 Web API 的规则和准则。

如何利用您的 REST API

API 包含一组可用于构建和集成应用软件的定义和协议。 有时我们可以将其视为信息提供者和信息用户之间的合同——确定消费者所需的内容(请求)和信息提供者需要提供的内容(响应)。  例如,在设计天气服务的 API 时,可以设定为由用户提供邮编,服务提供方则据此回复一个包含两部分的答案,第一部分是最高气温,第二部分是最低气温。     

也就是说,如果您想要通过与计算机或系统进行交互来检索信息或执行功能,API 可以帮助您将具体需求传达给相关系统,以便它能够理解并满足这一请求。   

您可以把 API 看做是用户或客户端与他们想要的资源或 Web 服务之间的传递工具。它也可以用来帮助企业在共享资源和信息的同时保障安全、控制和身份验证,即确定哪些人可以访问什么内容。 

API 的另一个优势是您无需了解缓存的具体细节,即如何检索资源或资源来自哪里。

详细了解 API

红帽资源

REST 是一组架构规范,并非协议或标准。API 开发人员可通过多种方式实施 REST。

当客户端通过 RESTful API 提出请求时,它会将资源状态表述传递给请求者或终端。该信息或表述通过 HTTP 以下列某种格式传输:JSON(Javascript 对象表示法)、HTML、XLT、Python、PHP 或纯文本。JSON 是最常用的文件格式,尽管它的名字英文原意为“JavaScript 物件表示法”,但它与任何编程语言都兼用,并且人类和机器都能读懂。 

还有一些需要注意的地方:在 RESTful API HTTP 请求的 HTTP 方法中,标头和参数也很重要,因为其中包含了请求的元数据、授权、统一资源标识符(URI)、缓存、cookie 等重要标识信息。        标头分为请求标头和响应标头,每种标头都有自己的 HTTP 连接信息和状态码。   

如果希望一款 API 被视为 RESTful API,那么该 API 需满足以下标准:

  • 客户端-服务器架构由客户端、服务器和资源构成,通过 HTTP 来处理请求。
  • 无状态客户端-服务器通信,即在不同的 get 请求之间不会存储任何客户端信息,并且每个请求都是独立的,互不关联。
  • 确保数据可缓存,以简化客户端与服务器之间的交互。
  • 在各组件之间采用一个统一的接口,以便按照标准格式传输信息。 这要求:
    • 所请求的资源是可识别的,并且要与发送给客户端的表示内容分离开来。
    • 客户端可通过收到的表示内容对资源执行操作,因为这些表示内容所包含充足的信息。
    • 返回给客户端的自描述消息包含充足的信息,用于指明客户端应该如何处理所收到的信息。
    • 超文本/超媒体可用,这意味着在访问某个资源后,客户端应能够使用超链接查找其当前可采取的所有其他操作。 
  • 由一个分层系统将参与检索请求信息的各类服务器(负责安全防护、负载平衡等功能的服务器)组织到层次结构中,且对客户端不可见。  
  • 按需编码(可选):能够根据请求将可执行代码从服务器发送到客户端,从而扩展客户端功能。 

尽管 REST API 必须符合上述标准,人们依然觉得它要比像 SOAP(简单对象访问协议)这样的规定协议更好用,因为 SOAP 受到 XML 消息传递等具体要求的约束,再加上采用内置安全防护和事务合规管理,所以速度更慢、更加繁琐而复杂。 

相比之下,REST 则是一组可按需实施的准则,使 REST API 速度更快、更轻量,并具有更高的可扩展性,非常适合物联网(IoT)移动应用开发。  

详细了解 REST 和 SOAP

红帽® 集成是一种以 API 为中心的解决方案,可一站式提供应用连接与数据转换、服务组合与编排、实时消息流、变更数据采集与 API 管理,助您在混合基础架构中连接应用和数据。同时,红帽集成与云原生平台和工具链相结合,可为现代应用开发提供有力支持。 

红帽 3scale API 管理是红帽集成的一个组件,可帮助您在专为提升性能、增强控制、强化安全防护以及助力未来发展而精心打造的基础架构平台上,实现 API 的共享、分发、控制和盈利。3scale 可以部署在企业本地、云端或二者的组合方案上。 

了解更多

中心

红帽官方博客

获取有关我们的客户、合作伙伴和社区生态系统的最新信息。

所有红帽产品试用

我们的免费试用可让您亲身体验红帽的产品功能,为获得认证做好准备,或评估某个产品是否适合您的企业。

扩展阅读

什么是应用集成?

应用集成可将不同的系统和应用连接起来,使它们可通过交换数据和使用服务进行协作。

一文看懂 API 是什么,有什么用?- 红帽

应用编程接口(API)是一组用于构建和集成应用软件的定义和协议。通过向合作伙伴或公众提供您的 API,可以:创造新的收入渠道,扩大您的品牌覆盖范围,通过外部开发和协作,推动开放创新或提高效率。

一文看懂 GraphQL 是什么?都有哪些优缺点 - 红帽

GraphQL 是一种用于应用编程接口(API)的查询语言和服务器端运行时,作为 REST 的替代方案,它可以使客户端准确地获得所需的数据,没有任何冗余。让 API 变得快速、灵活并且为开发人员提供便利。

集成 相关资源