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

如今,API构成了现代应用的基础框架,有助于改善用户体验并优化商业模式。有时,API本身甚至可以成为一种商业模式。

API如何工作?

API是应用程序的“公开界面”,用于展示应用程序可执行的功能和可提供的信息,并定义正确的请求格式。开发人员为应用程序创建并公开API后,其他应用程序便可与该应用程序通信。

在许多情况下,API可提供随时可用的常用功能,从而为开发人员节省宝贵时间。开发人员无需重复开发现有应用的功能,只需调用该应用的API,即可将这些功能集成到自己的应用中。

示意图

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

API架构和协议的类型

API架构(即架构风格)是指API的高层设计,包括API的结构、组织方式及其请求/响应格式。API协议同样规定格式,并进一步描述具体的消息。

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

  • REST,也称为RESTful。这种架构风格基于表述性状态转移原则。它使用HTTP方法(如GET、POST、PUT和DELETE)以及以资源和资源模型形式呈现的抽象信息,构建可扩展、灵活且不依赖特定技术的结构。如今,REST仍是一种广受采用的API架构。
  • GraphQL: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 Remote Procedure Call)就是RPC的一个示例。

如今如何使用API?

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

目前,组织中常见的4类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时,许多开发者可能会选择使用框架。框架提供代码库等构建模块及其他必要的实用工具,让开发者能够更快、更轻松地使用该语言构建应用。

每种编程语言通常都有一个或多个广受开发者欢迎的框架。下表列出了几种可选框架(其中许多是开源框架)。

语言

框架

Java

春季

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策略为组织如何设计、开发、管理、治理和保护API制定规划。

根据Gartner 面向软件工程领导者总结的 5 大 API 经验,可遵循以下 5 项实践,帮助制定稳健的 API 策略:

  • 不要让API治理形成瓶颈。需要在API治理与开发敏捷性之间取得平衡,以持续推动创新。
  • 将API视为产品,即使不打算通过API获利。确保每个API都有明确的用途和目标受众,并与业务目标保持一致。
  • 抢先于黑客发现您的API。优先提升API的可发现性并定期监控,有助于防止安全漏洞。
  • 管理API生命周期。全面的API生命周期管理可确保API持续正常运行并得到妥善保护。
  • 选择最适合的API技术。适用于其他组织的技术未必完全适合贵组织,因此务必要详细考虑当前及未来的具体API需求。

无论选择哪种API架构或编写哪种类型的API,都必须从一开始就考虑API安全,而不能事后补救。要进一步了解如何从一开始就保护API,并应对以下常见问题:API蔓延,请参阅《API安全:保护API的最佳实践》。

并非所有指标都同等重要,详情请参阅成功实施API策略需要监控的12项指标。

什么是API连接?

API最初是开发人员使用的工具,如今已发展为可增加收入并支持企业敏捷性的战略业务资产。API连接是指在云原生环境中使用模块化、可复用的API来连接数据和应用,旨在解决可见性、安全性和治理方面的挑战。