什么是 API(应用程序编程接口)?

一位年轻学生和一位女士在同一张桌子上工作

作者

Michael Goodwin

Staff Editor, Automation & ITOps

IBM Think

什么是 API?

API(应用程序编程接口)是一组规则或协议,可支持软件应用程序相互通信,以交换数据、特性和功能。

API 允许开发人员集成来自其他应用程序的数据、服务和功能,而不是从头开始开发它们,从而简化和加速应用程序和软件开发。API 还为应用程序所有者提供了一种简单、安全的方式,使其应用程序数据和功能可供组织内的部门使用。应用程序所有者还可以将数据和功能共享或推销给业务合作伙伴或第三方。

API 允许仅共享必要的信息隐藏其他内部系统详细信息这有助于系统安全。 服务器或设备不必完全公开数据——API 支持共享与特定请求相关的小数据包。

API 文档就像一本技术手册,提供有关 API 的详细信息,并指导开发人员如何使用 API 和其服务。精心设计的文档可为用户带来更好的 API 体验,通常也会使 API 更为成功。

高速公路鸟瞰图

在云端保持清醒头脑 


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

API 的工作原理是什么

从客户端和服务器之间请求和响应的角度来考虑 API 通信是非常有用的。 提交请求的应用程序是客户端,服务器提供响应。 API 是在它们之间建立连接的桥梁。

我们通过第三方支付处理这个常见示例,可以轻松地了解 API 工作原理。当用户在电子商务网站上购买产品时,该网站可能会提示用户“使用 PayPal 付款”或其他类型的第三方系统。此功能依赖 API 来建立连接。

  • 当买家点击付款按钮时系统会发送 API 调用以检索信息。 这就是请求。该请求是通过 API 的统一资源标识 (URI) 从应用程序处理到 Web 服务器,包括请求动词、标头,有时还包括请求正文。
     

  • 从产品网页收到有效请求后,API 会调用外部程序或 Web 服务器,在本例中为第三方支付系统。
     

  • 服务器向 API 发送包含所请求信息的响应。
     

  • API 将数据传输到初始请求的应用程序,此处为产品网站。

虽然数据传输会根据所使用的 Web 服务而有所不同,但请求和响应都是通过 API 发生的。用户界面上看不到这些传输,这意味着 API 在计算机或应用程序内交换数据,在用户看来是一种无缝连接。

WebMethods Hybrid Integration

重塑 AI 时代的集成范式

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

API 的类型

API 可以按用例分类包括数据 API、操作系统 API、远程 API 和 Web API。

Web API

Web API 支持使用 HTTP 协议通过互联网传输数据和功能。

如今,大多数 API 都是 Web API。网络应用程序接口是一种远程应用程序接口(即应用程序接口使用协议来操作外部资源),通过互联网公开应用程序的数据和功能。

Web API 的 4 种主要类型是:

开放 API

开放 API 是可以通过 HTTP 协议访问的开源应用程序编程接口。也称为公共 API,它们定义了 API 端点以及请求和响应格式。  

合作伙伴 API

合作伙伴 API 连接战略业务合作伙伴。通常,开发人员通过公共 API 开发人员门户以自助服务模式访问这些 API 。尽管如此,他们仍然需要完成加入流程并获得登录凭证才能访问合作伙伴 API。  

内部 API

内部或私有 API 对外部用户保持隐藏状态。 这些专用 API 不适用于公司外部的用户。 相反,组织使用它们来提高不同内部开发团队之间的生产力和沟通。

复合 API

复合 API 组合了多个数据或服务 API。它们允许程序员在一次调用中访问多个端点。复合 API 在微服务架构中非常有用,在微服务架构中执行单个任务可能需要来自多个来源的信息。

其他类型的 API

不常见的 API 类型包括:

  • 数据(或数据库)API,用于连接应用程序和数据库管理系统

  • 操作系统(或本地)API,用于定义应用程序如何使用操作系统服务和资源

  • 远程 API,用于定义不同设备上的应用程序如何交互

API 示例

由于 API 允许公司开放对其资源的访问,同时保持安全性和控制力,因此它们已成为现代商业和个人应用程序的一个重要方面。

以下是用户经常遇到的一些 API 示例

通用登录

一个流行的 API 示例是人们能够使用其 Facebook、X 或 Google 个人资料登录详细信息登录网站的功能。 这一便捷的功能允许任何网站使用更受欢迎的服务之一的 API 进行快速身份验证。 这一功能可帮助用户省去为每个网络应用程序或新会员设置新配置文件的时间和麻烦。

物联网 (IoT)

这些 “智能设备” 通过 API 提供额外的功能,例如支持互联网的触摸屏和数据收集。 例如,智能冰箱可以连接到食谱应用程序,或者通过短信记下笔记并向手机发送笔记。 内部摄像头连接到各种应用程序,以便用户可以从任何地方看到冰箱内的物品。  

旅行预订比较

旅游预订网站汇总了数千个航班,展示了每个日期和目的地的最便宜的选择。 通过应用程序接口,应用程序用户可以访问酒店和航空公司的最新空房信息,从而实现这项服务。

您可以通过网络浏览器或旅行预订公司自己的应用程序进行访问。 通过自动交换数据和请求,API 极大地减少了检查可用航班或住宿所需的时间和精力。  

导航应用

导航应用程序使用显示静态或交互式地图的核心应用程序接口。 这些应用程序还使用其他 API 和功能为用户提供方向、限速、兴趣点、交通警告等信息。 用户在绘制行进路线或跟踪移动中的物品例如送货车辆时与 API 进行通信。

社交媒体

社交媒体公司使用 API 允许其他实体共享社交媒体应用程序上的内容并将其嵌入到自己的网站中。 例如利用 Instagram API企业可以将 Instagram 网格嵌入其网站并在用户添加新帖子时网格自动更新。

SaaS 应用程序

API 是软件即服务 (SaaS) 产品增长不可或缺的一部分。客户关系管理 (CRM) 工具等平台通常包含多个内置 API,可让公司集成已经使用的应用程序,如消息传递、社交媒体和电子邮件应用程序。

这种集成大大减少了在销售和营销任务应用程序之间切换的时间。它还有助于减少或防止使用不同应用程序的部门之间可能存在的数据孤岛。

API 协议、架构风格和语言

传统上,API 是指连接到使用任何低级编程语言(例如 Javascript)创建的应用程序的接口。然而现代 API 的架构和数据格式的使用各不相同。它们通常是为 HTTP 构建的,从而产生了开发人员友好的界面,这些界面很容易被用 Java、Ruby、Python 和许多其他语言编写的应用程序访问和广泛理解。

随着 Web API 使用的增加,它导致了某些协议、样式、标准和语言的开发和使用。 这些结构为用户提供了一组定义的规则或 API 规范用于创建可接受的数据类型、命令和语法。 实际上,这些 API 协议促进了标准化信息交换。

SOAP(简单对象访问协议)

SOAP 是一种基于 XML 的轻量级消息传递协议规范,支持端点通过一系列通信协议,包括 SMTP (简单邮件传输协议)和 HTTP (超文本传输协议),发送和接收数据。SOAP 具有独立性,这使得 SOAP API 可以在不同环境中运行或以不同语言编写的应用程序或软件组件之间共享信息。

远程过程调用 (RPC)

远程过程调用 (RPC) 是一种协议提供操作系统中使用的高级通信范例。 RPC 假定存在一个低级传输协议,如传输控制协议/互联网协议(TCP/IP)或用户数据报协议(UDP),用于在通信程序之间传输消息数据。

RPC 实现了逻辑上的客户端到服务器通信系统专为支持网络应用程序而设计。 RPC 协议使用户能够像使用本地过程一样使用远程过程。 1

XML-RPC(XML-远程过程调用)

XML-RPC 协议依靠特定的 XML 格式来传输数据。 XML-RPC 比 SOAP 更古老,但简单得多,并且相对轻量级,因为它使用的带宽最小。  

JSON-RPC

与 XML-RPC 一样,JSON-RPC 是一个远程过程调用,它使用 JSON(JavaScript 对象表示法)而不是 XML。 JSON 是一种轻量级数据交换格式易于解析并使用名称/值对和有序值列表。 由于 JSON 使用通用数据结构因此可以与任何编程语言一起使用。

gRPC

gRPC 是最初由 Google 开发的高性能开源 RPC 框架。 gRPC 使用网络协议 HTTP/2 和 Protocol Buffers 数据格式通常用于连接微服务架构中的服务。

WebSocket

WebSocket API 支持客户端和服务器之间的双向通信。 这种类型的 API 不需要为每次通信建立新的连接——连接建立后就可以持续进行交换。 这使得 Web Socket API 成为实时通信的理想选择。

REST(表述性状态转移)

REST 是一组 Web API 架构原则。 REST API (又称 RESTful API)是指遵守某些 REST 体系结构约束的 API。REST API 使用 GET、PUT、HEAD 和 DELETE 等 HTTP 请求与资源交互。 REST 将数据作为资源提供每个资源由唯一的 URI 表示。 客户端通过提供资源的 URI 来请求资源。

REST API 是无状态的,它们不会在请求之间保存客户端数据。 使用 SOAP 协议构建 RESTful API 是可能的,但从业者通常将这两个标准视为相互竞争的规范。

GraphQL

GraphQL 是一种开源查询语言和服务器端运行时,用于指定客户端应如何与 API 交互。GraphQL 允许用户仅用几行代码发出 API 请求而不必访问具有许多参数的复杂端点。此功能可以更轻松地生成和响应 API 查询,特别是针对多个资源的更复杂或特定的请求。

REST 与 SOAP

SOAP 和 REST 代表 API 设计的不同方法,描述了 API 如何与其他应用程序交互的规则和标准。 SOAP 是一种协议而 REST 是构成架构风格的一组约束。 两者都使用 HTTP 来交换信息。

REST 通常被认为是 SOAP 的更简单的替代方案,因为它轻量、灵活、透明且相对易于使用;与 REST 相比,SOAP 要求用户编写更多的代码来完成每个任务。

SOAP 更具确定性和健壮性(得益于类型检查),并且支持者认为,由于许多开发工具都内置了 SOAP 支持,因此 SOAP 更易于使用。3SOAP 具有内置合规性,开发人员通常认为它是一种更安全的协议,更适合对数据完整性要求严格的情况。

RESTful 系统支持不同格式的消息传递例如纯文本、HTML、YAML、XML 和 JSON而 SOAP 仅允许 XML。 每个都有其优势,“正确的选择”可能取决于用例。 然而,支持多种数据存储和交换格式的能力是 REST 成为当今构建公共 API 的普遍选择的原因之一。

REST 与 GraphQL

GraphQL 是一种查询语言和 API 运行时,由 Facebook 于 2012 年内部开发,然后在 2015 年开源。GraphQL 和 REST 均无状态,并使用客户端/服务器模型和 HTTP。GraphQL 解决了 REST 的一些局限性,例如,提供通过单个请求更准确地定位所需资源的能力。

REST API 遵循固定结构,并且始终返回指定对象的完整数据集。 例如,如果请求更复杂,跨越多个资源,则客户端必须为每种资源提交单独的请求。 这些限制可能会导致读取不足或过度提取的问题。

REST API 和 GraphQL API 都不是天生优越的。它们是适合不同任务的不同工具。

REST 通常更易于实现,当首选具有严格访问控制的简单、可缓存的通信协议时,REST 可能是一个不错的选择(例如 Shopify 和 GitHub 等面向公众的电子商务网站)。

GraphQL 应用程序接口可实现更灵活、更高效的数据获取从而提高系统性能并提高开发人员的易用性。这些功能使得 GraphQL 尤其适合在前端需求快速变化的复杂环境中构建 API。4

API、Web 服务和微服务

API 与 Web 服务

Web 服务是一种互联网软件组件,可促进通过网络进行数据传输。 由于 Web 服务将应用程序的数据和功能公开给其他应用程序,因此实际上每个 Web 服务都是一个 API。然而,并非每个 API 都是 Web 服务。

API 是充当两个断开连接的应用程序之间中介的任何软件组件。虽然 Web 服务也连接应用程序,但它们需要网络才能实现。Web 服务通常是私有的,只有经过批准的用户才能访问。

API、微服务和云原生开发

微服务是一种架构风格,它将应用程序划分为较小的独立组件,通常使用 REST API 进行连接。将应用程序构建为独立服务的集合使开发人员能够独立于其他应用程序组件而工作,并使应用程序更易于测试、维护和扩展。

随着云计算的兴起,微服务架构变得越来越普遍,它与容器Kubernetes 一起成为云原生应用程序开发的基础。

API 的好处

API 简化了新应用程序和服务的设计和开发,以及现有应用程序和服务的集成和管理。它们还为开发人员和整个组织带来了显著的益处。

优化协作方式

企业平均使用近 1,200 个云应用程序,其中许多是断开连接的。API 支持集成,以便这些平台和应用程序可以无缝地相互通信。通过这种集成,公司可以实现工作流程自动化并改善工作场所协作。如果没有 API,许多企业将缺乏连通性,导致信息孤岛,从而影响生产效率和绩效。

加速创新

API 提供了灵活性,使公司能够与新的业务合作伙伴建立联系并为现有市场提供新服务。这种灵活性还使企业能够进入新的市场,从而提高收益并推动数字化转型。

例如,Stripe 公司最初从一个只有七行代码的 API 开展业务。此后,该公司与世界上许多最大的企业合作。Stripe 已经多元化,提供贷款和公司卡,最近的估值达到 650 亿美元。

数据货币化

许多公司选择免费提供 API,至少在最初是这样,从而围绕自己的品牌积累开发人员受众,并与潜在的业务合作伙伴建立关系。如果 API 授予对有价值的数字资产的访问权限,企业就可以通过出售访问权限来实现货币化。这种做法称为 API 经济。

AccuWeather 推出自助服务开发者门户,以销售各种 API 包,仅用 10 个月就吸引了 24,000 名开发者,并售出 11,000 个 API 密钥。此举有助于在此过程中建立一个繁荣的社区。

系统安全

API 将请求应用程序与响应服务的基础架构分开,并在两者通信时在两者之间提供安全层。例如 API 调用通常需要身份验证凭证。HTTP 标头、Cookie 或查询字符串可以在数据交换期间提供额外的安全性API 网关可以控制访问以进一步减少安全威胁。

用户安全和隐私

API 在网络内提供额外的保护。 它们还可以为个人用户提供另一层保护。 当网站请求用户的位置时(位置 API 可提供该信息),用户可决定是否允许或拒绝该请求。

许多 Web 浏览器以及桌面和移动操作系统都具有内置的权限结构。 当应用程序必须通过 API 访问文件时 iOS、macOS、Windows 和 Linux 等操作系统会使用该访问权限。

相关解决方案
IBM webMethods Hybrid Integration

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

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

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

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

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

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

 

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

 

 

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

1Remote Procedure Call”, ibm.com, 3 November 2023.

2What is GraphQL”, Chrystal R. China, ibm.com, 8 December 2023.

3
Comparing REST and SOAP”, ibm.com, 5 March 2021.

4GraphQL vs. REST API: What’s the difference?”, Chrystal R. China, ibm.com, 29 March 2024.