Michael Chen | 高级撰稿人 | 2025 年 2 月 24 日
“API”一词指的是应用编程接口。API 充当应用之间的桥梁,使其能够通信和共享数据。例如,营销团队用于管理多个社交媒体账户的仪表盘依赖于 API,通过 API 将公司的社交平台连接到仪表盘显示并提取相关数据。
典型的互联网用户一直受益于 API,但他们往往没有意识到这一点。API 可将公共数据源(如天气预报网站)连接到商业应用,向我们警示风暴即将到来。开发人员定期访问 Google Maps API,将地图和定位服务嵌入其网站。零售商使用 API 驱动的支付网关(例如 PayPal 和 Stripe)安全地处理与客户的财务交易。
API(即应用编程接口)是一组规则和协议,允许应用以详细记录的方式交换数据、执行操作和进行交互。当发出请求(例如天气更新)时,API 会处理请求,执行必要的操作,然后返回响应(通常采用 JSON 或 XML 定义的或 XML 定义的格式)。
关键要点
借助 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,支持企业充分利用从云技术服务到数据库,再到强大的业务应用的功能。
例如,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 来链接实时数据并根据需求和交通状况动态调整乘车价格,这项技术正在推动真正的创新。
普通人可能比较熟悉那些实现社交媒体集成和支付处理的 API。许多网站和应用使用 API 来启用受欢迎的社交媒体功能,如内容共享,而电子商务平台使用 API 来连接 Stripe 或 PayPal 等支付网关。
但这并不是 API 让我们的日常生活更便利的唯一方式。它们为提供共享出行或食品配送服务的应用提供地理位置服务,这些应用依赖映射 API 来查找客户住址或目的地位置。
在业务方面,API 使用场景包括允许各团队与云技术资源(例如财务或客户服务应用)进行交互。API 还是物联网设备与其控制系统之间进行通信和数据交换的驱动力量。
如果您在一间能够自动调整灯光和温度的智能办公室工作,那么这也是一个 API 用例。
有几种协议(或架构风格)可用于向开发人员公开 API。这些方法可使开发人员了解他们应期望一组 API 如何运行,以及通常会使用什么机制从自己的程序访问该 API。
常见的架构风格包括:
API 集成可连接应用,并允许应用交换数据和功能。可以把集成想象成电话线路,它使开放的双向通信成为可能。
集成涉及三个组成部分。
API 本身:API 本身提供了决定应用如何通信的规则和规范。API 明确了可以交换哪些数据、使用的格式以及可以触发哪些操作。
服务器应用:服务器应用通过 API 公开其功能或数据。例如,云技术服务可能会提供 API 来帮助 IT 团队快速启动新实例或增加席位。
客户端应用:客户端应用使用 API 从服务器应用请求数据或功能。例如,共享出行应用使用天气服务的 API,在下雨或气温高于或低于特定温度阈值时调整价格。
实际过程涉及几个步骤,首先是客户端应用的开发人员选择合适的 API。客户端使用 API 密钥、令牌或其他凭据对所需的 API 进行身份验证,获得访问特定数据或操作的授权。然后,它向服务器的 API 发出请求或调用,请求所需的确切数据或操作。
提供服务的应用处理请求,如果获得授权,则执行操作或检索数据,然后通过 API 以结构化格式(如 JSON 或 XML)将其发送回客户端。
数字化转型离不开云技术,而 API 是云原生架构的基石。API 支持集成云端的服务和系统,并使企业可以连通旧应用与新的云技术服务,在不中断运营的情况下逐步过渡到数字化的未来。通过 API,企业可以快速应对市场变化和机遇。您可以考虑直接将支付网关、社交媒体平台和分析工具等现代服务构建到您的应用中。
另一个变革性的 API 驱动的技术是微服务,这是一种支持独立服务和功能的现代应用开发架构方法。在微服务架构中,应用被拆分为独立的构建块,每个构建块高效地完成单一任务。微服务使用 API 与其他应用或服务进行通信。一个应用可能只有几个微服务,也可能由数百甚至数千个移动部件组成。基于微服务的应用通过保持各个元素的独立性来实现更快的扩展。这提供了数字化转型所需的敏捷性和灵活性,而传统软件开发中使用的单体架构可能会阻碍这些转型举措。
拥抱微服务的云原生企业可以快速采取行动,抓住新机遇并实现自动化。API 是实施这一战略的基础。
很多企业正在开发 API,通过 API 传递请求和结果,推动云技术、人工智能 (AI) 和机器学习 (ML) 持续发展。不过,API 本身也取得了进步。
一个例子是反向(出口)网关。通常,API 网关的任务是处理传入的请求。然而,也存在一些情况,其中 API 网关作为专门的互联网代理运行,提供基础设施以引导应用的网络流量,同时允许 IT 团队监控发生的情况。当流量离开网络的唯一途径是通过 API 网关使用批准的外部 API 时,IT 可以审计离开网络的数据包,从而更好地了解其数据的使用情况。
API 网关还可以追踪应计费服务的使用情况,确保正确使用服务并获得预期收入。此外,网关还可以在部署之前帮助测试新版本的应用。在测试期间,可能需要根据请求是来自生产系统还是测试来定向调用。网关可以获取必要的信息并执行重定向。
新的 API 速率限制和节流技术可帮助 IT 团队管理 API 访问并防止攻击。速率限制会限制应用在特定时间范围内可以进行的 API 调用数,而节流会根据服务器负载或活动是否标记为可能恶意等因素动态调整访问。
影响 API 格局的其他关键趋势和标准还包括注重开放性和互操作性,但又不牺牲安全性。企业应关注各种趋势,包括:
OpenAPI Initiative。 OpenAPI Initiative (OAS) 是一个组织联盟,致力于开发用于描述 API 的通用语言。这种标准化格式有望改善文档、发现和集成。
JSON Web Tokens。 另一种开放标准 JWT 正成为 API 中进行身份验证和授权的常用方法。它们为应用提供了一种安全的方式来交换用户身份信息,而无需将敏感数据存储在 API 服务器本身上。
OAuth 2.0。 由于安全性与标准化一样重要,因此业界广泛采用行业标准授权协议 OAuth 2.0。OAuth 2.0 框架允许应用访问其他应用平台上的用户数据,而无需用户共享密码。此举使个人和企业能够更好地控制自己的数据。
OpenID Connect (OIDC) 基于 OAuth 2.0 构建,允许应用验证用户的身份,而无需为每个应用提供单独的登录凭证。
最后,对于严重依赖稳定的 API 性能的企业而言,API 分析是一个新兴的必备工具。通过主动监视和分析 API 使用模式,IT 部门可以识别性能瓶颈、安全风险和改进机会。企业可通过 API 管理器提供的工具来收集和追溯 API 使用情况数据。衡量哪些 API 被使用得最多可以帮助企业确定投资方向。例如,如果一个老旧 ERP 解决方案的 API 使用量比 CRM 的 API 更多,那么优先改进或替换 ERP 可能是明智的选择。
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 示例
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),而无需依赖在客户端和服务器之间建立有状态的关系。
注:为免疑义,本网页所用以下术语专指以下含义: