什么是 REST API?
REST API 是一种遵循 REST 架构设计原则的 应用编程接口(API )。REST 是表述性状态传递的英文缩写,涵盖一系列有关如何构建 Web API 的规则和准则。
什么是 API?
API 包含一组可用于构建和集成应用软件的定义和协议。 有时我们可以将其视为信息提供者和信息用户之间的合同——确定消费者所需的内容(请求)和信息提供者需要提供的内容(响应)。 例如,在设计天气服务的 API 时,可以设定为由用户提供邮编,服务提供方则据此回复一个包含两部分的答案,第一部分是最高气温,第二部分是最低气温。
也就是说,如果您想要通过与计算机或系统进行交互来检索信息或执行功能,API 可以帮助您将具体需求传达给相关系统,以便它能够理解并满足这一请求。
您可以把 API 看做是用户或客户端与他们想要的资源或 Web 服务之间的传递工具。它也可以用来帮助企业在共享资源和信息的同时保障安全、控制和身份验证,即确定哪些人可以访问什么内容。
API 的另一个优势是您无需了解缓存的具体细节,即如何检索资源或资源来自哪里。
红帽资源
REST
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)和移动应用开发。
为什么选择红帽?
红帽® 集成是一种以 API 为中心的解决方案,可一站式提供应用连接与数据转换、服务组合与编排、实时消息流、变更数据采集与 API 管理,助您在混合基础架构中连接应用和数据。同时,红帽集成与云原生平台和工具链相结合,可为现代应用开发提供有力支持。
红帽 3scale API 管理是红帽集成的一个组件,可帮助您在专为提升性能、增强控制、强化安全防护以及助力未来发展而精心打造的基础架构平台上,实现 API 的共享、分发、控制和盈利。3scale 可以部署在企业本地、云端或二者的组合方案上。
红帽官方博客
获取有关我们的客户、合作伙伴和社区生态系统的最新信息。