什么是 API 端点?

香港维多利亚港鸟瞰图

作者

Dan Nosowitz

Staff Writer, Automation & ITOps

IBM Think

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

什么是 API 端点?

API 端点是一个数字位置,应用程序编程接口 (API) 在该位置接收对其服务器上的资源的 API 调用(也称为 API 请求)。API 端点是 API 的组件,通常采用 URL 或统一资源定位符的形式。

API 是一种中介,使软件应用程序能够相互通信,以交换数据、特性和功能。它是一组协议和规则,用于定义 API 客户端(发出请求的软件)如何与服务器通信以访问数据和功能。通过使用 API,开发人员可以利用已有的数据和服务;应用程序所有者可以共享或销售这些相同的数据和服务。

端点的功能有点像电话号码:就像用户拨打电话号码联系特定的人或企业一样,API 客户端(进行 API 调用的软件)提供端点 URL 来访问特定资源。端点 URL 提供资源在 API 服务器上的位置,并帮助将 API 客户端与其请求的资源连接。它实际上是在告诉服务器:“我需要的资源位于此处”。

API 端点可以让 API 客户端从 API 请求各种数据,用例范围涵盖社交媒体软件应用程序的实时更新以及音频或视频嵌入、检索新闻报道或创建新帖子等功能。

高速公路鸟瞰图

在云端保持清醒头脑 


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

为什么 API 端点很重要?

格式正确且安全的 API 端点是 API 工作原理的关键部分。API 简化了新应用程序和服务的设计和开发(因为开发人员可以使用它们来构建现有的功能和服务)以及现有应用程序和服务的集成和管理。它们还能为开发人员和大多数组织提供巨大优势,包括改进协作、加快创新、提高敏捷性、可扩展性和安全性等。API 端点支持资源交换,从而使这种集成成为可能。

为确保 API 正常工作,API 端点必须精确、直观、可发现且经过身份验证,否则客户端与服务器之间的通信便可能会中断,从而影响与其相关的功能和用户满意度。简而言之,API 端点可让 API 客户端成功定位和访问所请求的资源和功能。

WebMethods Hybrid Integration

重塑 AI 时代的集成范式

IBM Web Methods Hybrid Integration 展示了企业如何无缝连接云和本地部署的应用程序,实现敏捷和可扩展的数字化转型。 

API 端点的工作原理是什么?

API 端点通常可在 API 文档中找到,开发人员在此放置 API 信息,例如 API 将接受的请求类型以及应如何格式化请求。理想情况下,此文档还包括所有可用 API 端点的列表及其功能的简短描述。

REST API(一种常用于 Web 应用程序的软件架构风格)环境中,该过程如下所示:

当 API 客户端向相应的 API 端点发送资源请求(API 调用)时,该过程开始。通过使用 POST、GET、PUT、PATCH 和 DELETE 等 HTTP 请求方法来访问端点。这些方法指示客户端希望对指定资源执行的操作。

例如,如果客户端希望从假设的数据库 Olympicfacts.com 中检索某一年的奥运奖牌总数列表,将向以下端点 URL 发送 GET 请求:

https://api.olympicfacts.com/v1/{year}

该请求将返回各国奥运奖牌总数的列表。(我们假设的端点中的 v1 表示 API 的版本,这是 API 版本控制的常见做法。)如果客户端想要获取给定年份特定国家的奖牌总数,则会在基本 URL 中添加标识符: 

https://api.olympicfacts.com/v1/year/{id}

在此示例中,标识符 {id} 用于表示客户端希望接收有关哪个国家的信息。

此外,一个请求可能包括:

  • 标头:标头可以提供有关该请求的其他信息,例如指定接受的媒体类型的 Accept 标头。

  • 参数:可以将查询参数添加到基本 URL 或请求正文中,以进一步筛选搜索条件或添加其他规范。

  • 请求正文:一个请求正文中包括创建或修改资源所需的数据。例如,如果该请求旨在创建一个新博客(POST 请求),则新博客的内容将包含在请求正文中。

一旦服务器对该请求进行身份验证并验证了输入,则会检索所请求的数据并将响应返回给客户端。许多组织使用 API Gateway 来执行这些功能并管理 API 流量。

REST API 和 GraphQL 端点有什么区别?

REST API(也称为 RESTful API 或 RESTful Web API)是一种符合表述性状态转移 (REST) 架构风格设计原则的 API。1 GraphQL 是一种开源查询语言和服务器端运行时,规定了客户端应如何与 API 进行交互。2

GraphQL 和 REST 都是基于资源的技术,它们支持类似的数据格式(例如 JSON 和 XML),并允许客户端使用 HTTP 方法从服务器请求数据。不过,它们的请求要求和数据检索等方面也有所不同。我们将重点关注与端点相关的一个关键差异。

REST API 使用多个端点,并且每个资源都有不同的端点。当客户端请求资源时,服务器会返回与该资源关联的所有数据,即使客户端只需要一小部分数据也是如此。这就是所谓的过度获取。如果客户端需要分布在多个资源中的数据,则需要对每个资源进行单独的 API 调用,以编译所需的数据。

GraphQL 使用单个端点来公开数据模型,并使用一种语法,支持客户端在一行或几行中发出 API 请求,以准确指定所需内容。GraphQL 查询可以跟踪资源之间的引用,并在单个请求中完成复杂的数据检索任务。这有助于消除获取不足和过度获取的问题以及进行多次 API 调用的需求。

REST API 和 GraphQL API 本身并无优劣之分;它们是适合不同任务的不同工具。3

API 测试的工作原理

任何好的 API 设计的关键是测试阶段。现代应用程序通常使用 API 来集成其他软件的功能,或使用微服务架构(依赖 API 在不同服务之间进行通信)构建。测试 API 端点对于确保可靠性至关重要。

对于 API,既有手动测试选项,也有使用自动化功能的测试选项,而且企业还可以使用众多测试工具和平台(开源和专有)。

手动 API 端点测试可能速度更慢、效率更低,但也更精确,并可根据具体用例进行定制。功能测试就是简单地从应用程序发送请求,以确保给出正确的响应。在社交媒体示例中,这可能意味着由特定用户发送发布新帖子的请求,并检查以确保返回的帖子确实是正确的。

其他类型的手动测试包括:

  • 一次发送多个请求以查看服务器如何处理请求负载

  • 检查 API 是否与其他服务正确集成

  • 确定给定请求的速度和响应时间

  • 故意提供无效请求以检查是否返回了正确的错误消息

通过 API 管理平台进行自动化测试具有以下几个好处:

  • 降低了发生人为错误的可能性

  • 在检查多个 API 端点的有效性时效率更高

  • 一旦建立了自动化测试系统,即可提高测试速度,从长远来看还有可能降低成本(例如,节省员工时间)

  • 根据统一的协议、标准和权限调整测试

一般来说,每个测试都应在格式、返回数据和状态代码方面返回预期的响应。

如何保护 API 端点

由于 API 端点为内部和外部应用程序和系统提供了一种访问和集成数据的方式,因此,同时也为不法分子提供了潜在的切入点。分布式拒绝服务 (DDoS) 攻击可以使用合法请求,但数量大得离谱,将会淹没服务器。其他类型的攻击可能会试图使用 API 端点来提取比客户端授权接收的信息更多的信息,或使用 API 端点安装恶意软件或恶意代码。

组织可以通过多种方式维护其 API 端点的安全性和整体 API 安全性,包括:

身份验证机制

API 密钥身份验证和 OAuth 等身份验证方法可确保只有授权用户才能访问数据。

HTTPS

HTTPS(更安全的超文本传输协议或 HTTP 版本)使用传输层安全 (TLS) 来加密客户端和服务器之间的通信。这提高了数据传输的安全性。

速率限制

速率限制是一个通用术语,是指设置最大请求数量的工作,可以帮助防范 DDoS 攻击,保持系统稳定性。也可以对不同 API 端点应用不同限制。

地理过滤

如果攻击来自特定位置,则可使用地理过滤来阻止或限制来自这些位置的访问。

API Gateway

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 密钥来验证各个客户端和项目、跟踪和识别流量模式、阻止不必要的使用等。

如上所述,API 端点充当客户端和服务器之间的接口,API 客户端在其中直接从 API 请求某些数据或功能。API 密钥可用于提高企业的整个 API 环境及其 API 集成的安全性。

相关解决方案
IBM webMethods Hybrid Integration

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

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

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

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

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

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

 

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

 

 

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

1什么是 REST API?”,IBM.com

2 什么是 GraphQL?”,Chrystal China、Michael Goodwin,2023 年 12 月 8 日

GraphQL 与 REST API:有什么区别?”,Chrystal China,2024 年 3 月 29 日