NGINX.COM
Web Server Load Balancing with NGINX Plus

应用编程接口(简称 API)是一组定义、规则和协议,支持用户(人或软件)和信息(在线和 Web 应用提供的数据资源)两个实体之间的通信。

如今,API 构成了现代应用的基本框架,帮助改善用户体验并增强业务模式。有时,API 甚至自身可以作为一种业务模式。

 

API 的工作原理是什么?

API 是应用的“门面”,展示了应用执行的功能及其可提供的信息,并定义了正确的请求格式。当开发人员为一款应用创建 API 并将其暴露后,它允许其他应用与该应用通信。

在许多情况下,API 可帮助开发人员节省宝贵时间,因为它们让常用功能可以直接拿来使用。开发人员可通过调用现有应用的 API,将所需功能集成到自己的应用中,而不必浪费时间重新开发这些功能。

每个 API 的设计、部署和运行方式都取决于其架构风格或协议。

 

API 架构和协议的类型

API 架构或架构风格是指 API 的顶层设计,包括 API 的结构和组织方式及其请求/响应格式。API 协议不仅指定了格式,同时还描述了确切的消息。

常见的 API 架构和协议包括:

  • REST——也被称为 RESTful,这种架构风格基于表征状态转移的原则。它使用 HTTP 方法(例如 GETPOSTPUTDELETE)和抽象信息(以资源和资源模型的形式)来创建可扩展、灵活且技术独立的结构。如今,REST 仍然是最受欢迎的 API 架构。
  • GraphQL——由 Meta(原名 Facebook)开发的一种开源查询语言,GraphQL 架构支持通过单个 API 调用从多个来源获取数据。由于客户端只请求必要的数据,因此 GraphQL API 往往比 REST API 更加高效(但缓存能力较差)。
  • SOAP——这种架构方法使用简单对象访问协议(SOAP)。SOAP 消息通常采用 XML 格式,因此相比 REST 或 GraphQL 略显笨重。与 REST API 不同,SOAP API 采用严格的实施准则来定义 API 协议的结构。
  • WebSocket——这种 API 协议为全双工通信协议,意味着客户端和服务器可以同时发送和接收消息。此外,服务器发送的消息可以不是对客户端请求的响应,而是(例如)由服务器端的事件触发。相比之下,REST API 遵循严格的“请求-响应”模式。
  • RPC ——借助远程过程调用,开发人员能够使用相同的代码来调用在不同地址空间(通常是在远程服务器上)中运行的函数 — 就像调用本地函数一样,而不必指定远程交互的细节。由于可以使用多种语言,因此这种协议很灵活,常用于“客户端-服务器”通信。gRPC(Google 远程过程调用)就是一种 RPC。

 

API 使用现状

API 是现代软件的关键组成部分,如今各企业都会根据需求构建或使用许多不同类型的 API。

目前企业中最常见的四种 API 是公共 API私有 API合作伙伴 API第三方 API

公共 API

公共 API 可供企业外部的用户访问(无论是付费还是免费),助力您与第三方开发人员建立合作伙伴关系并扩展整个业务生态系统。

由于公共 API 可被第三方开发人员用来构建新产品,因此有助于推动创新,是帮助建立新合作伙伴关系的重要工具。

私有 API

私有 API 仅可供企业内部的团队访问,不仅能够帮助您解锁数据并促进内部协作,而且还可为企业面向公众的应用(例如您的网站)提供无形的支持。

由于私有 API 仅供内部用户使用,因此企业可以在构建时充分考虑优化问题。私有 API 还提升了现代应用的可组合性,支持企业根据当前的需求进行调整。开发人员可以在构建微服务时轻松集成私有 API,从而减少团队间的重复工作。

合作伙伴 API

合作伙伴 API 用于直接集成业务合作伙伴解决方案(例如,当一家航空公司与一家连锁酒店合作时,您可以机票和酒店同订)。合作伙伴 API 不公开提供 — 只有满足两家企业的身份验证 (AuthN) 和授权 (AuthZ) 要求的部分开发人员才可对其进行访问。

互操作性加强了与合作伙伴 API 的关系,因为它们打破了孤岛,支持不同企业相互通信。

第三方 API

第三方 API 可被企业用于访问应用和服务中缺少的数据或功能。这些 API 在第三方服务器上运行,通常提供广泛需要的服务(例如许多电子商务网站使用的 Stripe 支付处理 API)。这些 API 可供企业付费或免费使用,具体视 API 而定。

由于第三方 API 均由其他开发人员或企业构建,因此可显著节省成本。此外,第三方 API 是企业加快应用开发的一个重要途径,因为开发人员可以立即使用所需功能,无需自行编写。

 

使用哪些应用语言来创建 API?

几乎任何现代编程语言都可以用来编码 API。在编码 API 时,许多开发人员可能会选择使用一个框架。框架提供了代码库等构建块及其他必要实用程序,有助于更快速、更轻松地使用该语言构建应用。

每种编程语言一般都有一个或多个开发人员常用的框架。下表列出了几个框架选项(其中许多为开源框架)。

语言

框架

Java

Spring

JavaScript, Node.js

Angular, Express.js, React, Vue

PHP

Laravel, Slim, Symfony

Python

Django, Flask

Rust

Rocket, Yew, Actix-Web

Ruby

Rails

具体选择哪种语言和框架通常取决于项目需求或开发人员的个人偏好。

 

API 示例

API 是现代软件开发的一个基本组成部分,其示例不胜枚举。此处,我们只举数例。

三个 API 示例:

  • Google Maps Platform——Google 提供的一个 API,支持您将 Google Maps 嵌入到网站或应用中。
  • AWS IoT ——AWS IoT API 支持您将物联网上的设备(例如智能家居设备)连接到 AWS 云。这是智能家居自动化系统的一种构建方式。
  • NGINX Unit Control API——Unit API 使用 REST 架构来配置开源 NGINX Unit 应用和 Web 服务器。

 

什么是 API 策略?

企业需要根据其业务目标来制定现代 API 策略,后者为企业如何设计、开发、管理、治理和保护其 API 设定了方案。

根据 Gartner《适用于软件工程领导者的五大 API 经验教训》,现有五个最佳实践可帮助您确保实施强大的 API 策略:

  • 切勿让 API 治理造成瓶颈。需要在 API 治理与开发人员敏捷性之间取得平衡,以不断推动创新。
  • 将 API 视为产品,即使您不打算从中盈利。确保每个 API 都有明确的用途和受众,与业务目标相匹配。
  • 先于黑客发现自己的 API。重视可发现性和定期监控有助于防范安全漏洞。
  • 管理 API 的生命周期。全面的 API 生命周期管理可确保 API 在适当的安全防护下持续运行。
  • 选择最适合的 API 技术。适合其他企业的技术不一定适合您,因此您必须详细考虑您当前和未来的具体 API 需求。

无论您选择哪种类型的 API 架构或者正在编写哪种类型的 API,必须从一开始就考虑 API 安全防护,而非事后弥补。如欲进一步了解如何从一开始确保 API 安全和应对 API 蔓延等常见问题,请参阅《API 安全防护:保护 API 的最佳实践》。

并非所有指标都同等重要,如欲了解更多信息,请参阅《12 个指标确保 API 策略成功》。

 

什么是 API 互联?

尽管 API 最初只是开发人员的工具,但现已发展成为战略业务资产,不仅有助于增加收入,而且还可提高企业敏捷性。API 互联是指使用模块化、可复用的 API 来连接云原生环境中的数据和应用,以解决可视化、安全防护和治理方面的挑战。

 

更多资源

NGINX 提供了各种免费资源,可为您提供所需的帮助。

相关词汇页

博客

电子书

Tags

No More Tags to display