应用程序编程接口 (API) 是一个软件使用另一个软件的功能的一种方式。
阅读本文后,您将能够:
相关内容
订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!
复制文章链接
应用程序编程接口 (API) 是一套规则,它让一个软件程序能够向另一个软件程序传输数据。
API 是一个“接口”,意味着一个事物与另一个事物交互的一种方式。举一个现实世界中的例子,ATM 有一个界面——一个屏幕和几个按钮,允许客户与他们的银行互动并请求服务,例如取出现金。同样,API 是一个软件与另一个程序交互以获得所需服务的方式。
想象一下,Jennifer 建立了一个网站,帮助通勤者在上班前检查高速公路的交通情况。Jennifer 可能会花费大量时间和金钱来建立一个复杂的高速公路跟踪系统,以便向她的网站用户提供这些信息。但是这些功能已经存在,因为外部各方已经创建了这样的系统。Jennifer 的网站没有重新创建这样的系统,而是使用由外部高速公路跟踪服务提供的 API。现在 Jennifer 可以专注于构建网站的其他方面。
API 调用(也称 API 请求)是指指向 API 的信息,它会触发使用 API。
API 调用必须按照 API 的要求进行格式化才能正常工作。 API 的要求称为其“架构”。该架构还描述了为每个请求提供的响应类型。
假设一个通勤者使用 Jennifer 的网站查看 192 号高速公路的交通情况。该网站发送一个 API 调用来提供此信息,即一条写着“192 号高速公路”的消息。高速公路跟踪服务的 API 服务器接收到此消息并回复 192 号高速公路的行驶时间。想象一下这个 API 的架构:
API 请求 | API 响应 |
---|---|
“192 号高速公路” | 192 号高速公路上的旅行时间 |
“217 号高速公路” | 217 号高速公路上的旅行时间 |
“225 号高速公路” | 225 号高速公路上的旅行时间 |
(请注意,这是一个高度简化的示例——实际上的 API 请求、响应和架构更为复杂。)
现在假设 Jennifer 的网站发送“高速公路 ASDFGHJ”的 API 请求。这不是一个有效的请求,因为它不符合 API 的架构,该架构只允许高速公路的实际名称。服务器将无法为此类请求提供可用的响应。
端点是一个通信信道的终点。API 端点是 API 响应的发源地。
在示例中,API 连接的客户端是 Jennifer 的网站,端点是托管 API 的服务器。Jennifer 的 API 调用必须前往 API 服务器负责的某个 URL(URL 是一个网址,如 www.cloudflare.com/learning)才能获得响应。
API 集成是两个或多个使用 API 的应用程序的组合。API 集成使一个应用程序能够从另一个应用程序的功能中受益,就像将销售团队和营销团队合并到一个办公室使这两个团队能够一起工作并从彼此的努力中受益一样。API 集成也常用于在两个应用程序或数据库之间同步数据。
从操作系统到软件库,任何涉及计算机代码的东西都可以有一个 API。Web API 专门供通过互联网访问的 Web 应用程序使用。
Web API 对于现代互联网来说非常重要。几乎所有面向用户的应用程序都依赖 API 来运行(不仅仅是 Jennifer 的网站!)。整个软件开发理念都依赖于 API 的使用——其中一种理念是 JAMstack,JAM 代表 JavaScript、API、markup。另一个示例是微服务架构,它使用 API 来调用构成应用程序的不同功能。即使没有使用这些方法构建的应用程序通常也依赖于 API。
SOAP API 和 REST API 描述了不同类别的 API。
SOAP(简单对象访问协议)是一种协议。SOAP API 是只使用 SOAP 协议的 API。
REST(REpresentational State Transfer,表述性状态转移)是一种 Web 服务的架构样式。REST API 是使用 REST 架构构建的任何 API。与 SOAP API 不同,REST API 可以使用任何协议。如今的大多数 API 都是 REST API。
正如允许一个人使用应用程序会带来该人滥用应用程序的风险一样,API 也会带来 API 客户端滥用服务的风险。此外,Web API 调用通过互联网传输,也可能像通过网络传输任何其他数据一样被拦截、假冒或修改。
API 安全是保护 API 免受攻击和滥用的做法。鉴于 API 对现代互联网的重要性,API 安全是 Web 应用程序安全性的核心组成部分。关键的 API 安全措施包括:
Cloudflare API Gateway 具备上述功能以及其他安全功能,可抵御 API 威胁。要更深入地了解 API 安全,请参阅什么是 API 安全?