API - 应用程序编程接口

2025年3月17日 | 阅读 10 分钟
API - Application Programming Interface

如今,我们几乎将手机应用程序用于所有目的。这些目的范围广泛,从简单的发送消息到在线查看板球比分。应用程序编程接口 (API) 用于应用程序之间的通信以及访问和获取所需的信息。

什么是 API?

API 是应用程序编程接口 (Application Programming Interface) 的缩写。它是负责连接两个应用程序进行通信和信息交换的软件。API 连接两个设备或程序,以促进它们之间的信息交换。它是为软件的其他部分提供服务的接口。API 规范是描述创建此类连接的标准或文档。如果一个计算机系统符合这些标准,则称其公开了 API。规范或实现两者都被称为 API。

API 的历史

API 的概念自古以来就存在。多年来,API 的实现经历了各种转型。唯一的区别在于访问和实现 API 的方式。

在 1990 年代,Salesforce 推出了基于 Web 的 API,它充当了销售自动化工具。这开启了 SaaS 革命,强调了软件即服务的概念。万维网也鼓励了一种新的软件交付方式,并构建了基础设施来适应新系统。

API 的存在甚至可以追溯到万维网和互联网的引入之前。它最初用于为有限区域提供服务。它连接了该有限区域内的计算机网络。

API 拥有光明的前景,因为世界各地的用户和程序员都在使用和创建托管在万维网上的应用程序。API 的功能是使 API 提供者能够公开服务。因此,外部系统调用 API 提供者并访问服务。

Web API

Web API 提供 Web 通知和存储等服务。这些 API 可以通过 HTTP 协议访问。 不同的 API 在其提供的安全性和隐私级别上有所不同。可以将多个 Web API 组合成复合 API。它也被称为数据或服务 API 的集合。

API - Application Programming Interface

Web API 的类型

Web API 的各种类型如下;

  1. 开放 API: 也称为外部或公共 API,是用户限制最少的 API。这些有时需要注册或 API 密钥,有时完全开放。它们旨在供外部用户访问数据。因此,开发人员可以无需注册即可访问数据。
  2. 内部 API: 内部 API 与开放 API 不同,因为它们对外部用户是隐藏的。它们对企业很有用,并且在公司内部用于共享资源。它促进了公司不同部门和小组之间的数据访问。内部 API 有助于为公司内多个服务的连接提供标准接口。
  3. 合作伙伴 API: 合作伙伴 API 与开放 API 非常相似。唯一的区别是它们具有由 API 网关(第三方网关)控制的受限区域。这些 API 用于特定服务,例如任何软件上的付费服务。
  4. 复合 API: 复合 API 是独一无二的,因为它们允许开发人员一次调用访问多个端点。它可能为单个 API 或多个数据源和服务提供不同的端点。当需要从多个服务访问数据以完成单个任务时,复合 API 类型很有用。复合 API 有三个主要优点,如下所示;
    1. 降低服务器负载
    2. 提高应用程序性能
    3. 一次调用获取多个服务数据

API 架构和协议

API 调用有特定的规则,这些规则由 API 协议定义。API 协议根据规则给出可接受的命令和数据类型。协议约束根据 API 架构而有所不同。

REST

REST 是最知名的 API 架构之一。API 必须遵循以下原则才能成为 REST API;

  • 可缓存性
  • 客户端-服务器架构
  • 分层系统
  • 无状态性

JSON-RPC 和 XML-RPC

JSON-RPC 和 XML-RPC 分别使用 JSON 和 XML 来编码其调用。RPC 也称为远程过程调用协议。一个结果是期望从多个参数中得到。以下是将其与 REST 区分的特征;

  1. 与 REST 不同,这些旨在调用方法。REST 传输文档并处理资源。
  2. URI 在其参数中不包含任何信息。与 REST 不同,URI 仅标识服务器。

SOAP

SOAP 也称为简单对象访问协议 (Simple Object Access Protocol)。它根深蒂固,并且旨在是可扩展的、中立的和独立的。以下是 SOAP 的一些规范;

  1. 可扩展模型
  2. 消息结构
  3. 处理模型
  4. 协议绑定规则

尽管两者都是竞争标准,但可以使用 SOAP 协议构建 RESTful API。

API 的演进

在互联网时代初期,人们就充分认识到万维网的用处及其可能性。因此,公司开始将产品和服务的提供方式转变为虚拟商店。

最初,SOA(面向服务架构)是分布式系统中最流行的模型。然而,它存在组织边界的限制。后来,技术专家意识到跨越组织边界的必要性,因此他们开始在万维网上发布数据。因此,它不再有组织边界。它整合了来自多个来源的数据,并向客户展示了有价值的见解。

API 的例子

API 最常见的例子是使用应用程序在互联网上搜索信息。如果你使用一个应用程序来完成特定目的,你会使用互联网。互联网和应用程序之间会建立连接。互联网向服务器提供数据;它检索数据、处理信息并将其发送回手机。应用程序的任务是解释数据并以可读的格式呈现给用户。这个过程是通过 API 实现的。

借助一个例子可以更好地解释这个概念。当你去餐厅点餐时,食物来自厨房。因此,厨房就是系统。你的桌子是接收响应的地方。然而,要在餐桌上送达食物,餐桌和厨房之间必须有沟通渠道。服务员或 API 在餐桌和厨房之间充当信使。它会接收你的请求,然后告诉厨房(一个系统)该做什么。然后,服务员将响应(在这种情况下是食物)交付给用户。

另一个现实生活中的 API 示例是在线航班预订。与上面的餐厅示例类似,有城市、往返和出发日期以及客舱等级等多种选择。在预订机票时,您会选择舱位等级、出发城市和日期、返回城市和日期等变量。所有航班选项和数据以及机票价格都会显示在您预订机票的航空公司网站上。因此,您需要与航空公司数据库进行交互。

但是,假设您使用了另一个收集来自各种数据库的数据并将其呈现给用户的旅游服务网站。在这种情况下,旅游服务充当航空公司的 API。就像餐厅的服务员一样,在线旅游服务将提供选项并协助预订机票。它通过收集数据库中的信息来做到这一点。API 将收集航空公司对您请求的响应,将其传递给在线旅游服务,并将其呈现给您。通过这种方式,您将能够获取有关您的预订和航班的最新信息。API 提供的数据对用户来说将是最相关和最有帮助的。

因此,服务员在餐厅中起到的作用与在线旅游服务的作用相同,两者都是 API。因此,API 对于两个系统之间的通信至关重要。

API 中的安全层

当我们使用 API 时,服务器不会完全暴露给设备,设备也不会完全暴露给服务器。它们之间的通信通过小数据包进行,这些数据包只共享必要的数据。例如:点餐时,您会提出包含您要求的订单,餐厅也会提出他们的要求。因此,您完成订单并获得餐点。

API 变得如此有用,以至于公司通过 API 盈利。一些通过 API 赚钱的公司包括亚马逊、eBay、Expedia、Google 和 Salesforce.com。API 通过为公司创造收入,成为业务中有价值的一部分。API 的市场被称为“API 经济”。

现代 API

API 被描述为应用程序的连接接口。然而,现代 API 具有不同的特征,使其更具价值。这些特征如下所述;

  • 它们遵循对开发人员友好、易于访问和理解的标准。
  • 它们设计独特,因此可以被特定受众(如移动开发人员)使用。这些 API 的设计旨在满足特定的维护和生命周期期望。
  • 由于它们更加标准化,因此在安全性​​和性能方面更加严谨。
  • 它们充当产品,而不是代码,因为产品软件有其软件开发生命周期 (SDLC),包括测试、管理、设计、构建和版本控制。此外,现代 API 的文档也非常完善。

API 在日常生活中的应用

应用程序编程接口 (API) 在经济中发挥着至关重要的作用。API 不容易被注意到,但它们几乎无处不在,并对我们产生重大影响。API 在数据共享方面至关重要,并有助于个人、应用程序或设备之间的通信。以下是一些日常生活中 API 的常见功能。

  1. 天气监测
    天气监测是最常见的 API 日常应用之一。天气更新可以在 Google 搜索、智能家居设备或 Apple 的天气应用程序上看到。每当您通过这些平台中的任何一个搜索您所在城市的 Météo 时,您都会立即看到结果。例如,虽然 Google 不经营天气业务,但如果您在 Google 上搜索,您会立即获得数据。这是因为 Google 使用 API 从第三方获取数据。获取这些数据后,Google 会对其进行重新格式化并呈现给用户。许多 API 都具有天气数据功能,并在提供天气条件和预报方面发挥着至关重要的作用。
  2. 用于登录
    API 也有助于登录 Facebook、Google、Twitter、Github 等帐户。它有助于在您登录后访问这些帐户中的功能。
    API 不会直接登录用户的帐户,因为这会带来安全和隐私风险。应用程序使用平台的 API 在每次登录时对用户进行身份验证。
  3. 付款
    支付功能也是使用 API 构建的。使用 API,可以确保应用程序只暴露必要的数据,而不是敏感数据。API 可防止应用程序访问意外数据,并帮助其实现既定目标。
    支付系统的运作方式与登录功能类似。用户向应用程序发送支付命令后,他会发送一个包含支付金额的订单。此外,他还会添加其他相关信息。然后,弹出窗口将通过身份验证用户来确认付款。随后,API 将支付确认发送给应用程序,最终发送给用户。
  4. 机器人
    机器人是 API 的另一个日常应用。例如,有许多 Twitter Bot,它们是 Twitter 帐户,它们可以根据软件的指令执行诸如发推、关注和发送消息等功能。以下是一些 Bot;
    • TinyCare Bot:它负责提醒用户喝水、伸展、呼吸新鲜空气等。
    • Grammar Police:纠正用户的语法错误并进行相应的更正。
    • Netflix Bot:从 Netflix 发布内容相关的推文。
    这些是 Twitter API 驱动的 Bot。API 会告知 Bot 特定平台详细信息或事件。此外,它还允许用户执行发推、关注等操作。
  5. 预订
    旅游预订是 API 非常重要的另一个领域。在线旅游服务从第三方 API 收集信息并呈现给用户。这些信息对用户选择和进行预订很有用。

API 的未来

API 是必要的工具,并且在程序员开发越来越多的应用程序以增加用户时,它们拥有光明的未来。API 提供商在为 API 客户提供事件驱动 API 方面发挥着至关重要的作用。以下是对 API 经济和 API 开发的一些预测。

改进移动设备上的 API 体验

TCP/IP 协议的网络层将进行彻底的改造,以便在低网络覆盖和不稳定网络覆盖下更好地转换数据包。这可以通过引入 HTTP3 来实现。这将使应用程序开发人员能够加快上市时间,因为他们可以在移动应用程序中集成更多 API。因此,即使在网络覆盖不稳定的情况下,移动应用程序的性能也会得到改善。这是因为访问 API 将变得更快。

围绕事件驱动 API 的新商业模式

API 提供商在为 API 客户提供事件驱动 API 方面发挥着至关重要的作用。这意味着业务逻辑从 API 提供者端转移到 API 客户端。例如,当您在 Uber 上预订乘车时,应用程序会自动为您分配驾驶员并向您发送详细信息。因此,这是一个事件驱动的 API,它会在后台为您做出决定,目的是为您服务。

API 领域其他预期发展包括;

  1. 更好的 API 标准化
  2. 微服务用于提供 API
  3. 面向最终用户应用程序的 API 驱动架构
  4. API 作为企业的信息高速公路