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

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

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

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

什么是 API?

API 或应用编程接口是一组规则和协议,允许应用以详细记录的方式交换数据、执行操作和交互。当发出请求(例如天气更新)时,API 会处理请求,执行必要的操作并返回响应,通常采用标准格式,例如 JSON 或 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 网关提供 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 通常用于让任何应用使用服务。此访问可能是一个简单的操作,例如检索当前时间或更复杂的东西,例如检索天气雷达图像或从 A 点到 B 点的详细路程列表。由于公共 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 对虚拟网络进行编程管理,包括创建、配置和管理子网、安全列表和路由表。通过计算 API,管理员可以在 OCI 中启动、停止、重新引导和配置计算实例。其他 API 将 IT 团队与对象存储、身份和访问管理功能连接起来。

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

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

API 的使用场景

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

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

创建 API 容易吗?

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

简单来说,什么是 REST API?

REST 有时被称为 RESTful,代表“代表性状态传输”,是用于开发 Web 服务的标准协议。REST 提供了一组规则和准则,允许不同的应用以可扩展、高效的方式通过互联网进行通信。REST 定义了应用如何通过 HTTP,使用 HTML、XLT、Python、JSON、PHP 或纯文本,通过 GET、PUT、POST 和 DELETE 发出请求,而无需依赖在客户端和服务器之间建立有状态的关系。

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

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