什么是 API 端点?

API 端点是 API 连接的一端,即 API 调用被接收的位置。

学习目标

阅读本文后,您将能够:

  • 定义 API 端点
  • 了解为何 API 端点使用 URL
  • 了解身份验证对 API 端点的重要性

相关内容


想要继续学习吗?

订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!

参阅 Cloudflare 的隐私政策,了解我们如何收集和处理您的个人数据。

复制文章链接

什么是 API 端点?

应用程序编程接口(API)是应用程序向另一个应用程序请求服务的一种方式。API 使开发人员能够避免重新构建已经存在的应用程序功能。API 端点是以上请求(称为 API 调用)得到满足的位置。

如果爱丽丝和鲍勃正在通过电话交谈,爱丽丝的话会传送给鲍勃,反之亦然。爱丽丝将她的话传向对话的“端点”:鲍勃。

爱丽丝:“你好,鲍勃” ----------> 鲍勃

同理,API 集成就像对话。但 API 客户端不是说“你好”,而是向 API 服务器发送类似“我需要一些数据”的请求——发起 API 调用。API 服务器端点则回答说“这就是数据”——API 响应。API 端点不是像爱丽丝和鲍勃那样的物理实体;它们存在于软件而非硬件中。

API 服务器与 API 客户端

API 托管于一台或多台服务器上——储存数据和执行软件程序的专门计算机。每台服务器向互联网上的其他设备“提供”数据、内容和软件功能。API 端点几乎总是托管于一台服务器上。

API 连接的另一端是 API 客户端——从 API 请求服务的实体。有人将其称为 API “用户”,尽管大多 API 调用是自动化的。

API 客户端如何知道服务器的端点?

为便于使用,API 必须拥有文档。文档说明该 API 将接受什么类型的请求,该 API 可以做什么,响应格式如何,以及端点是什么。开发人员可以查看 API 的文档,并在构建应用程序时集成这些信息。

例如,请点击以下链接查看 Cloudflare 的 API 文档,其中包括端点是什么:https://api.cloudflare.com/

API 如何使用 URL?

统一资源定位器(URL)在 web 上有多种用途,包括定位网页。例如,本网页的美国英语版本 URL 为 https://www.cloudflare.com/learning/security/api/what-is-api-endpoint/。当用户在浏览器中输入这个 URL 时,浏览器知道到哪里找到这个网页并加载它。

URL 也指示 API 端点。当爱丽丝和鲍勃要在电话上交谈时,爱丽丝会通过鲍勃的电话号码打给他。同样,API 端点 URL 就像用于进行 API 调用的电话号码。

API 服务器能托管一个或多个 API 端点,意味着它将接受和处理指向这些端点 URL 的调用请求。API 客户端也需要有一个 URL,以便 API 服务器知道将响应发送到何处,就像鲍勃和爱丽丝都需要有一个电话号码,以便他们之间的通话能正常进行一样。开发人员在构建应用程序时设置这一 URL。

URL 总是包含用于到达它的应用程序层协议,例如 HTTP。大多 web API 使用 HTTP,因而它包含在这类 API 端点的 URL 中。

API 端点和客户端如何验证身份?

设计合理的 API 不会随意接受任何人的 API 调用。这样会使 API 服务器容易接收到来自攻击者的恶意数据。此外,API 使用通常需要付费,在这种情况下,API 服务器必须检查 API 调用是否来自付费客户。

出于这些原因,API 服务器必须确保发起调用的 API 客户端是已知和可信的。它通过验证来实现这一点。

验证就是确认身份的过程。正如人类用户进入一个系统有几种验证方法,API 端点实施验证的主要方式有四种:

  1. API 密钥: API 客户端获分配一个密钥(key),即只有客户端和 API 服务才知道的唯一字符串。向服务器端点发起 API 调用时,API 客户端会包含这个密钥,以便服务器知道调用请求来自何处。
  2. 基本验证(用户名和密码):类似密钥方式,API 客户端设施一个 API 服务的用户名和密码,并在 API 调用中包含这些凭据。
  3. OAuth 令牌: API 服务器可使用 OAuth 协议从可信的认证服务器获得验证令牌,而非要求来自客户端的验证。
  4. 双向 TLS: TLS 是加载网页时客户端和服务器之间创建验证链接的协议。这种协议也可用于验证 API 集成的双方。

在很多情况下,双向 TLS 是最有效的验证方式。一个原因是,它对端点和客户端都进行身份验证,而不仅仅是客户端,因此双方都可以确定正在接收来自合法源的数据。它也使用私钥,而私钥不会在端点之间共享,因而无法在传输过程中被截获。另一方面,API 密钥、密码和令牌都有可能被复制或窃取。

Cloudflare API Shield 使用双向 TLS 来验证 API 端点和客户端,帮助保护双方免受攻击。API Shield 也提供另外几个 API 安全功能,包括速率限制数据丢失防护(DLP)——进一步了解 API Shield。