什么是 REST API?

2025 年 4 月 24 日

什么是 REST API ?

REST API 是一种应用程序编程接口 (API),它符合表性状态传输 (REST) 架构风格的设计原则,此风格用于连接分布式超媒体系统。REST API 有时也被称为 “RESTful API” 或 “RESTful Web API”。

REST 最早是由计算机科学家 Roy Fielding 博士于 2000 年在他的博士论文中定义,它为开发人员提供了相对较高的灵活性、一致性、可扩展性和效率。REST API 提供了一种构建 Web API 的轻量级方法,通常用于促进应用程序、Web 服务和数据库之间的数据交换,以及连接微服务架构中的组件。

REST 表性状态传输设计原则

在最基本的层面上,API 是一种机制,它支持应用程序或服务访问另一个应用程序、服务或数据库中的资源。访问资源的应用程序或服务是客户端,包含资源的应用程序或服务是服务器。一些 API,例如 SOAP 或 XML-RPC,对开发人员规定了严格的框架。但是开发人员可以使用几乎任何编程语言开发 REST API,并支持各种数据格式。唯一的要求是,它们符合以下六个 REST 设计原则,也称为架构约束

统一接口

无论请求来自何处,对同一资源发出的所有 API 请求都应该看起来相同。REST API 应确保同一份数据(例如,用户的姓名或电子邮件地址)仅属于一个统一资源标识符 (URI)。资源不应太大,但应包含客户可能需要的每条信息。

客户端与服务器解耦

在 REST API 设计中,客户端和服务器应用程序必须完全相互独立。客户端应用程序应该知道的唯一信息是所请求资源的 URI,它不能以任何其他方式与服务器应用程序交互。同样,除了通过 HTTP 将客户端应用程序传递到所请求的数据外,服务器应用程序不应修改客户端应用程序。

无状态

REST API 是无状态的,这意味着每个请求都需要包含处理它所需的所有信息。换言之,REST API 不需要任何服务器端会话。不允许服务器应用程序存储与客户端请求相关的任何数据。

可缓存性

如果可能,资源应该可以在客户端或服务器端缓存。服务器响应还需要包含有关是否允许对已交付资源进行缓存的信息。目标是提高客户端的性能,同时提高服务器端的可扩展性。

分层系统架构

在 REST API 中,调用和响应会经过多个不同的层。根据经验,不要假定客户端和服务器应用程序直接相互连接。通信环路中可能包含多个不同的中介服务器。REST API 的设计需要确保客户端和服务器都无法判断自己是与最终应用程序还是与中介服务器通信。

按需编码(可选)

REST API 通常发送静态资源,但在某些情况下,响应也可以包含可执行代码(例如 Java 小程序)。在这些情况下,代码只应按需运行。

高速公路鸟瞰图

在云端保持清醒头脑 


获取每周 Think 时事通讯,了解有关在 AI 时代优化多云设置的专家指导。

REST API 的工作原理

REST API 通过 HTTP 请求进行通信,执行标准的数据库功能,如在资源中创建、读取、更新和删除记录(也称为 CRUD)。

例如,REST API 会使用 GET 请求来检索记录。POST 请求用于创建新记录。PUT 请求用于更新记录,DELETE 请求用于删除记录。所有 HTTP 方法都可以在 API 调用中使用。精心设计的 REST API 类似于在具有内置 HTTP 功能的 Web 浏览器中运行的网站。

任何特定时刻或时间戳的资源状态称为资源表示。几乎可以采用任何格式将该信息传递到客户端,包括 JavaScript 对象表示法 (JSON)、HTML、XLT、Python、PHP 或纯文本。JSON 很受欢迎,因为它既能被人类读取,也能被机器读取,而且与编程语言无关。

在 REST API 调用中,请求标头和参数也很重要,因为它们包含重要的标识信息,例如元数据、授权、统一资源标识符 (URI)、缓存、cookie 等。精心设计的 REST API 中会使用请求标头和响应标头以及传统的 HTTP 状态代码。

GraphQL 与 REST 应用程序接口:有什么区别?

AI 学院

利用混合云实现 AI 就绪

本课程由 IBM 资深思想领袖带领,旨在帮助企业领导者获得所需的知识,以便划分可以推动增长的 AI 投资的优先级。

REST API 最佳实践

尽管灵活性是 REST API 设计的一大优势,但是这种灵活性同样也容易设计出不连续或性能不佳的 API。因此,专业开发人员分享了 REST API 规范的最佳实践。

OpenAPI 规范 (OAS) 建立了一个接口来描述 API,该描述方式支持任何开发人员或应用程序发现它,并完全理解其参数与能力。这些信息包括可用端点、每个端点上允许的操作、操作参数、身份验证方法等。最新版本的 OAS3 包括手动操作工具,例如 OpenAPI Generator,可以用不同的编程语言生成 API 客户端和服务器存根。

确保 REST API 的安全也要从行业最佳实践开始。使用哈希算法确保密码安全,使用 HTTPS 实现安全数据传输。类似 OAuth 2.0 的授权框架可以帮助限制第三方应用程序的权限。

使用 HTTP 标头中的时间戳,API 还可以拒绝在特定时间段后到达的任何请求。其他确保只有授权客户端才能访问 API 的方法包括参数验证和 JSON Web 令牌。

相关解决方案
IBM webMethods Hybrid Integration

AI 驱动的自动化可在 API、应用程序、事件、文件和 B2B/EDI 方面扩展敏捷性。

深入了解 IBM® webMethods Hybrid Integration
集成软件和解决方案

通过 IBM 集成解决方案,连接应用程序和系统以快速安全地访问关键数据,从而释放业务潜力。

深入了解云集成解决方案
云咨询服务

利用 IBM 的云咨询服务解锁新功能并促进业务敏捷性。了解如何通过混合云战略和专家合作共同制定解决方案、加速数字化转型并优化绩效。

深入了解云服务
采取下一步行动

 

IBM webMethods Hybrid Integration 提供统一的接口和控制平面,适用于多种集成模式、应用程序、API、B2B 和文件,并能跨地域、环境和团队扩展敏捷性。

 

 

深入了解 IBM webMethods Hybrid Integration 了解实际应用