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

Michael Chen | 高级撰稿人 | 2025 年 2 月 24 日

“API”一词指的是应用编程接口。API 充当应用之间的桥梁,使其能够通信和共享数据。例如,营销团队用于管理多个社交媒体账户的仪表盘依赖于 API,通过 API 将公司的社交平台连接到仪表盘显示并提取相关数据。

典型的互联网用户一直受益于 API,但他们往往没有意识到这一点。API 可将公共数据源(如天气预报网站)连接到商业应用,向我们警示风暴即将到来。开发人员定期访问 Google Maps API,将地图和定位服务嵌入其网站。零售商使用 API 驱动的支付网关(例如 PayPal 和 Stripe)安全地处理与客户的财务交易。

什么是 API?

API(即应用编程接口)是一组规则和协议,允许应用以详细记录的方式交换数据、执行操作和进行交互。当发出请求(例如天气更新)时,API 会处理请求,执行必要的操作,然后返回响应(通常采用 JSON 或 XML 定义的或 XML 定义的格式)。

关键要点

  • API 是一个中间人,让两个软件程序能够相互通信,并定义它们如何请求和接收数据或功能。
  • API 对于构建连接和共享信息的现代软件应用至关重要。
  • 通过允许 API 与本地部署软件集成和共享数据,API 在支持使用云技术服务方面发挥着关键作用。

API 详解

借助 API,开发人员可以原生从正在构建的应用访问软件平台和服务。如果没有 API,每次用户想要查看天气或回复社交媒体网站上的评论时,都必须手动从一个应用导出数据,进行数据准备和转换,然后手动导入到另一个应用。

简而言之,交换过程涉及三方,具体如下:

  • 客户端:发起请求的一方
  • 服务器:满足请求的一方
  • API:以有据可查、可预测的方式连接两者的中介

试想一家餐馆。如果顾客都走进厨房来点他们喜欢的菜,就会出现混乱。在此场景中,API 提供了一个菜单(文档),其中列出了厨房(服务器应用)可以提供的所有菜品(服务)。它解释了您作为客户端需要提供哪些信息以及您的订单应采用何种格式。

API 充当服务员(即中介),确保以标准化方式接收和交付订单。

API 的工作原理

API 通过指定软件组件的交互方式来发挥作用,使开发人员可以集成不同的系统并共享数据和功能,而无需从头开始构建所有内容,从而节省时间和资源。API 通常会定义通信必须使用的方法和协议,以及交换的数据格式。

API 会通过提供下列详细信息来定义应用的交互方式:

  • 端点。 用于定义向何处发送数据和请求的特定 URL。
  • 方法。 GET 指令用于检索数据;POST 指令用于发送数据;PUT 指令用于更新数据;DELETE 指令用于删除数据。
  • 参数。 请求所需的特定详细信息,例如天气数据的位置或社交媒体的登录凭据。
  • 响应。 应用发回的数据的格式,例如 JSON 或 XML。

请求数据的客户端应用的开发人员编写代码来发出 API 调用。此代码指定:

  • API 端点 URL
  • HTTP 方法
  • 任何必要的参数

应用将请求发送到服务器应用的 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 的 URL,应用该 API 使用的监管规则,并将 API 调用定向到相关后端。通常,网关将同时了解 API 规范和其应当应用的规则的详细信息。规则可以解决身份验证和授权、证书管理、速率限制和节流、有效负载检验和验证、基于标头或有效负载内容的智能路由等问题。

API 还可能包括速率限制、错误处理和开发人员文档。编写可靠的 API 涉及从架构风格到设计工具的一系列决策,是企业关注云原生未来的一项宝贵技能。

API 的优势

通过使用 API,开发人员可以将分布式应用连接起来(例如,智能手机应用连接到社交媒体网站,或将薪资系统连接到企业银行账户)。由于 API 支持从小型、单独的互联服务构建便捷应用,因此它们在稳健性和可扩展性方面具有优势。

如果一个服务中断,大多数应用都可以继续。其他优势包括:

  • 敏捷性。 API 支持开发人员为需要解决的每个问题选择合适的技术。
  • 更高效的开发。 API 允许开发人员插入现有功能,而不是从零开始构建所有功能。
  • 创新。 API 支持开发人员在无需大量投资的情况下发现新服务并进行试用,从而促进协作和实验。
  • 增强控制。 API 可以配备严格的授权控制,细粒度地限制应用可以访问哪些数据或操作。
  • 可扩展性。 API 使应用能够通过将任务外包给其他服务来处理日益增长的需求。例如,小型零售商可以选择付款 API(如 Stripe 或 PayPal),而不是维护自己的付款处理系统。这就转移了一个复杂的任务。现在,卖家可以专注于发展其核心业务,将付款处理留给专家,提高客户的信心。

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 错误

对于那些希望开发 API 的人来说,有一些陷阱需要注意,尤其是在规范选择上以及低估需求方面。良好的 API 设计的一个原则是抽象化并保护使用者,使其不受后端实现方式变化的影响。例如,您的 API 设计直接反映了底层数据存储,如果内部数据结构发生变化,API 将受到影响,这可能会中断 API 客户端。

需要避免的其他错误包括:

文档不完善。 清晰、详细的文档对于 API 的成功至关重要。例如,在描述日期时,格式必须明确。在欧洲,日期通常表示为日、月、年;而在北美,则是月、日、年。细节不明确可能会导致数据质量问题,更糟糕的是,您的 API 会破坏应用。

没有考虑生产环境的数据量。 在 API 开发期间,测试使用相对较小的数据集。在生产环境中,数据量通常要大得多,导致 API 调用尝试在单个请求中传输大量数据。这可能会引起一系列问题,具体取决于客户端与后端之间的网络。更糟糕的情况是,请求可能会对 API 后端造成超额需求,导致 API 调用失败。

为 API 网关设置策略时也可能出现错误。这些错误通常涉及没有提供足够的安全性,这可能允许恶意行为者更改数据或以不当方式访问数据,甚至将 API 用作攻击网络的一种方式。此类问题得到了 OWASP Foundation 的分析和收集,在其知名的《10 大 API 安全风险》榜单中报告常见错误。

将 API 网关的角色和 API 后端混淆是另一个常见的错误。这两种功能都需要处理 API,因此很容易将这两个元素混合在一起。但是,网关的任务是快速筛选请求并将请求路由到正确的位置。API 后端则需要较长的时间来处理每个请求,因为它提供了业务逻辑。

请记住,API 调用与 API 后端之间的关系不是一对一的。

API 的类型

API 有四种主要类型,您选择哪种类型取决于您的使用场景。在确定模型之前,请考虑为应用制定近期和更长期的计划 — 切换不同的 API 虽然可行,但会增加成本和复杂性。

  • 公共 API:任何人都可以使用公共 API 从客户端应用访问服务器的数据或其他服务。公共 API 的常见用途包括检索交通和天气数据以及管理第三方登录流程。公共 API 通常旨在支持任何应用使用某一服务。此访问可能是一个简单的操作,例如检索当前时间,也可能是比较复杂的操作,例如检索天气雷达图像或从 A 点到 B 点的详细路程列表。由于公共 API 往往被广泛使用,因此除非绝对必要,否则要非常小心,不要更改它们,以免破坏应用的功能。
  • 私有 API:是专为内部使用而开发的 API,尚未广泛发布。通常,私有 API 支持供应商的应用与该供应商的服务器通信。例如,手机上的银行应用使用私有 API 来访问特定银行的独特服务。
  • 合作伙伴 API:专为在特定组织之间使用而开发的 API。API 的详细信息向有限的一些合作伙伴披露。例如,云数据库平台可能同意与一定数量的分析提供商合作。这种情况下将使用合作伙伴 API 来高效地连接数据库和分析平台
  • 复合 API:复合 API 针对特定功能链接在一起,可能是公共 API、私有 API 和合作伙伴 API 的组合。使用公共 API 和私有 API 的链式 API 的一个示例是天气应用与健身追踪器应用之间的集成。天气应用的公共 API 为健身追踪器应用提供温度和湿度等数据。其私有 API 提供有关拥有者步伐和距离的数据,并将其与环境因素相结合,以计算燃烧的卡路里。

API 的示例

大多数人都熟悉消费者 API,例如天气或定位。但是,有许多复杂的 API,支持企业充分利用从云技术服务到数据库,再到强大的业务应用的功能。

例如,Oracle 在其服务中提供了各种 API。Oracle Cloud Infrastructure (OCI) 客户可以利用 API 对虚拟网络进行编程管理,包括创建、配置和管理子网、安全列表和路由表。使用 Compute API,管理员可以在 OCI 中启动、停止、重新引导和配置计算实例。其他一些 API 可以为 IT 团队提供对象存储、身份和访问管理功能。

创新型初创公司也在使用 API。例如,Inworld.ai 为角色扮演在线游戏提供 AI 驱动的虚拟角色。开发人员可以使用 API 来创建以逼真且引人入胜的方式与玩家互动的非玩家角色 (NPC)。游戏设计人员可以通过 API 指定角色的属性、个性和行为,从而定制 NPC,为游戏增加深度和多样性。虚拟角色可以通过 API 理解和响应文本或语音输入。

从 Domino's 使用 API 来集成语音助手,让顾客无需触摸设备即可订购披萨,到 Uber 使用 API 来链接实时数据并根据需求和交通状况动态调整乘车价格,这项技术正在推动真正的创新。

AI 的使用场景

普通人可能比较熟悉那些实现社交媒体集成和支付处理的 API。许多网站和应用使用 API 来启用受欢迎的社交媒体功能,如内容共享,而电子商务平台使用 API 来连接 Stripe 或 PayPal 等支付网关。

但这并不是 API 让我们的日常生活更便利的唯一方式。它们为提供共享出行或食品配送服务的应用提供地理位置服务,这些应用依赖映射 API 来查找客户住址或目的地位置。

在业务方面,API 使用场景包括允许各团队与云技术资源(例如财务或客户服务应用)进行交互。API 还是物联网设备与其控制系统之间进行通信和数据交换的驱动力量。

如果您在一间能够自动调整灯光和温度的智能办公室工作,那么这也是一个 API 用例。

API 协议

有几种协议(或架构风格)可用于向开发人员公开 API。这些方法可使开发人员了解他们应期望一组 API 如何运行,以及通常会使用什么机制从自己的程序访问该 API。

常见的架构风格包括:

  • 表述性状态转移 (REST)
    这是访问 Web 上的资源和服务的广受欢迎的架构。在许多环境下,客户端将经历与其服务器相关的状态更改进程。例如,如果您想知道银行余额,就需要从未经身份验证的状态转到经过身份验证的状态。然后,服务器和客户端在建立连接后将保持这个经过身份验证的状态。与此相反,REST API 是无状态的。如果开发人员希望使用 REST API 来检查银行余额,该请求将需要包含足够的信息对发出请求的用户进行身份验证。一旦处理了请求,将不保留任何状态信息。如果用户想要发出另一个类似的请求,他们必须再次向该请求提供身份验证信息。REST API 的一个优势是服务器不需要追踪客户端的状态,这可以大大简化服务器的架构。
  • 远程过程调用 (RPC)
    在传统应用中,过程调用(有时称为函数调用)用于访问运行应用的计算机的设备和服务。打开/读取文件(或者写入计算机的显示器或其他设备)是函数通过过程调用处理的。通过这种方式,操作系统在应用和计算机的实际硬件之间提供了一个抽象层。应用开发人员不需要知道任何有关计算机显示器的内容;他们只需要使用过程调用。同样,过程调用可以让应用使用网络上的资源。也许用户的文件不在本地计算机上,而是在网络服务器上。远程过程调用可以完成这个工作。很多时候,应用并不知晓它要使用的资源是本地资源还是远程资源。操作系统会识别出来,并采取适当的步骤来完成请求。通常,RPC 可以使用任何格式来访问函数 — 对于如何调用函数,通常由操作系统做出约定。

    操作系统调用只是一种类型的 RPC。可以开发其他类型的 RPC 来做几乎任何事情。例如,一家企业可以选择创建自己的应用来追踪员工小时数。开发人员可以使用基本网络功能来创建允许移动应用向中央服务器报告签到或签退的过程。各种库会让这一开发更容易,而使用像 REST 这样的标准架构可能会非常有用,因为其他开发者更有可能理解 RPC 的工作方式。
  • 简单对象访问协议 (SOAP)
    与 REST 一样,SOAP 提供了一种访问互联网服务的方法。它使用 XML 来定义请求的格式,并可以在各种传输协议上运行,这意味着它可以与供应商无关。SOAP 常用于访问 Web 服务,HTTP 充当传输层。如果应用希望检索产品说明,它将创建正确的 XML 文档并将其发送到了解该产品的 Web 服务器。Web 服务器将发送自己的 XML 文档,包括所请求的产品信息。由于 SOAP 旨在检索对象,因此操作仅限于 GET、POST、PUT 和 DELETE,这使得协议的动词结构非常简单。

API 集成

API 集成可连接应用,并允许应用交换数据和功能。可以把集成想象成电话线路,它使开放的双向通信成为可能。

集成涉及三个组成部分。

API 本身:API 本身提供了决定应用如何通信的规则和规范。API 明确了可以交换哪些数据、使用的格式以及可以触发哪些操作。

服务器应用:服务器应用通过 API 公开其功能或数据。例如,云技术服务可能会提供 API 来帮助 IT 团队快速启动新实例或增加席位。

客户端应用:客户端应用使用 API 从服务器应用请求数据或功能。例如,共享出行应用使用天气服务的 API,在下雨或气温高于或低于特定温度阈值时调整价格。

实际过程涉及几个步骤,首先是客户端应用的开发人员选择合适的 API。客户端使用 API 密钥、令牌或其他凭据对所需的 API 进行身份验证,获得访问特定数据或操作的授权。然后,它向服务器的 API 发出请求或调用,请求所需的确切数据或操作。

提供服务的应用处理请求,如果获得授权,则执行操作或检索数据,然后通过 API 以结构化格式(如 JSON 或 XML)将其发送回客户端。

API 与数字化转型

数字化转型离不开云技术,而 API 是云原生架构的基石。API 支持集成云端的服务和系统,并使企业可以连通旧应用与新的云技术服务,在不中断运营的情况下逐步过渡到数字化的未来。通过 API,企业可以快速应对市场变化和机遇。您可以考虑直接将支付网关、社交媒体平台和分析工具等现代服务构建到您的应用中。

另一个变革性的 API 驱动的技术是微服务,这是一种支持独立服务和功能的现代应用开发架构方法。在微服务架构中,应用被拆分为独立的构建块,每个构建块高效地完成单一任务。微服务使用 API 与其他应用或服务进行通信。一个应用可能只有几个微服务,也可能由数百甚至数千个移动部件组成。基于微服务的应用通过保持各个元素的独立性来实现更快的扩展。这提供了数字化转型所需的敏捷性和灵活性,而传统软件开发中使用的单体架构可能会阻碍这些转型举措。

拥抱微服务的云原生企业可以快速采取行动,抓住新机遇并实现自动化。API 是实施这一战略的基础。

Oracle 如何助您一臂之力

Oracle Cloud Infrastructure (OCI) 提供了一套全面的服务来管理 API 的生命周期。通过内置工具,开发团队可以轻松地在 API 的原型设计、测试和验证方面开展协作。Oracle Cloud Infrastructure API Gateway 为基于 API 和 SOA 的系统提供集成、加速、监管和安全服务,使团队能够安全地管理和交付 Web API。此外,通过使用计划和订阅,API 运营者能够监控和货币化 API。

一旦开发团队了解了 API 的工作原理,他们就能够洞察客户和员工日常使用的许多应用和服务的隐藏连接。现在,开发人员可以利用通过 API 公开的数据和功能更快速地构建更出色、成本更低的应用,无需从零开始构建所有内容。

财务应用是 API 的主要使用场景,并且需求很高。它们可以帮助 CIO 来帮助 CFO 交付令员工和客户都满意的系统。以下是有助于简化核心财务流程的其他方法。

API 常见问题解答

API 有哪四种类型?

API 有四种类型:公共 API(任何人都可以使用)、私有 API(在组织内部开发)、合作伙伴 API(专为在相关组织的软件之间展开协作而开发)和复合 API(组合使用各类 API)。

举一个现实生活中的 API 示例

NASA 就是一个很好的公共 API 提供商示例,它提供 API 来共享研究数据、图像和事件追踪信息。这些 API 允许开发人员获取选定的 NASA 数据(例如 Mars Rover 更新或有关火山爆发等 NASA 追踪的自然事件的详细信息),并将其集成到他们自己的应用中。例如,天气应用可能会将 Mars Rover 更新整合到一个特殊部分,并将其宣传为“火星现场直播”,供用户查看。

创建一个 API 容易吗?

编写一个 API 可以是一个简单的过程,尤其对于经验丰富的开发人员来说。API 可以用几乎任何编程语言编写,而且现有的架构(如 REST)提供了既定的使用准则。学习 API 开发的一个简单方法是反向工程开源的公共 API,看看它们的架构师是如何创建这些 API 的。

简单来说,什么是 REST API?

REST(有时也称为 RESTful)是“Representational State Transfer(表述性状态转移)”的首字母缩写,是一种用于开发 Web 服务的标准协议。REST 提供了一套规则和指南,使不同的应用能够以可扩展且高效的方式通过互联网进行通信。REST 定义了应用如何通过 HTTP,使用 HTML、XLT、Python、JSON、PHP 或纯文本发出请求(通常为 GET、PUT、POST 和 DELETE),而无需依赖在客户端和服务器之间建立有状态的关系。

注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国 。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。