API 端点是 API 连接的一端,即 API 调用被接收的位置。
阅读本文后,您将能够:
相关内容
订阅 TheNET,这是 Cloudflare 每月对互联网上最流行见解的总结!
复制文章链接
应用程序编程接口(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/
统一资源定位器(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 端点实施验证的主要方式有四种:
在很多情况下,双向 TLS 是最有效的验证方式。一个原因是,它对端点和客户端都进行身份验证,而不仅仅是客户端,因此双方都可以确定正在接收来自合法源的数据。它也使用私钥,而私钥不会在端点之间共享,因而无法在传输过程中被截获。另一方面,API 密钥、密码和令牌都有可能被复制或窃取。
Cloudflare API Shield 使用双向 TLS 来验证 API 端点和客户端,帮助保护双方免受攻击。API Shield 也提供另外几个 API 安全功能,包括速率限制和数据丢失防护(DLP)——进一步了解 API Shield。