Michael Chen | 高级撰稿人 | 2025 年 2 月 24 日
“API”一词指的是应用编程接口。API 充当应用之间的桥梁,允许它们通信和共享数据。例如,营销团队用于管理多个社交媒体账户的仪表盘依赖于 API,API 将公司的社交平台连接到仪表盘显示并提取相关数据。
典型的互联网用户总是从 API 中受益,但通常没有意识到这一点。API 将公共数据源(如天气预报网站)连接到商业应用,以警告我们即将到来的风暴。开发人员定期访问 Google Maps API,将地图和定位服务嵌入其网站。零售商使用 API 驱动的支付网关(例如 PayPal 和 Stripe)安全地处理与客户的财务交易。
API 或应用编程接口是一组规则和协议,允许应用以详细记录的方式交换数据、执行操作和交互。当发出请求(例如天气更新)时,API 会处理请求,执行必要的操作并返回响应,通常采用标准格式,例如 JSON 或 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 对虚拟网络进行编程管理,包括创建、配置和管理子网、安全列表和路由表。通过计算 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 来帮助 IT 团队快速启动新实例或增加席位。
客户端应用使用 API 从服务器应用请求数据或功能。例如,乘车应用使用天气服务的 API 在下雨或高于或低于特定温度阈值时调整价格。
实际过程涉及几个步骤,从客户端应用的开发人员选择合适的 API 开始。客户端使用 API 密钥、令牌或其他凭据对所需的 API 进行验证,并获得访问特定数据或操作的授权。然后,它向服务器的 API 发出请求或调用,请求所需的确切数据或操作。
服务应用处理请求,如果获得授权,则执行操作或检索数据,然后通过 API 以结构化格式(例如 JSON 或 XML)将其发送回客户端。
数字化转型涉及云技术,而 API 是云原生架构的基石。通过 API,可以集成云端的服务和系统,并使企业可以将旧应用与新的云技术服务连接起来,从而在不中断运营的情况下逐步过渡到数字化的未来。通过 API,企业可以快速应对市场变化和机遇。考虑直接将支付网关、社交媒体平台和分析工具等现代服务构建到您的应用中。
另一个变革性和 API 驱动的技术是微服务,这是一种支持独立服务和功能的现代应用开发的架构方法。在微服务架构中,应用被分解为可高效执行单个任务的包含构建块。微服务使用 API 与其他应用或服务进行通信。一个应用可能只有几个微服务,或者它可能由数百甚至数千个移动部件组成。基于微服务的应用通过保持单个元素的独立性来加速扩展。这为数字化转型计划提供了所需的敏捷性和灵活性,而传统软件开发中使用的单体架构可能会阻碍这些计划。
拥抱微服务的云原生公司可以快速采取行动,抓住新机遇并实现自动化。API 是这一战略的基础。
公司正在开发 API,以推动云技术、人工智能 (AI) 和机器学习 (ML) 的持续增长,并通过 API 传递请求和结果。但是,API 本身也取得了进步。
一个例子是反向(出口)网关。通常,API 网关的任务是为传入的请求设置字段。然而,在有些情况下,API 网关作为专用互联网代理运行,提供基础设施来指导应用网络流量,同时允许 IT 团队监控正在发生的事情。当流量离开网络的唯一方法是通过 API 网关,使用批准的外部 API,IT 可以审计离开网络的数据包,并更好地了解他们的数据正在发生什么。
API 网关还可以跟踪应计费服务的使用情况,确保正确使用服务并获得预期收入。此外,网关还可以帮助在部署之前测试新版本的应用。在测试期间,可能需要根据请求是来自生产系统还是正在测试的请求来定向呼叫。网关可以获取必要的信息并执行重定向。
新的 API 速率限制和限制技术可帮助 IT 团队管理 API 访问并防止攻击。速率限制会限制应用在特定时间范围内可以进行的 API 调用数,而限制会根据服务器负载或活动是否标记为可能恶意等因素动态调整访问。
塑造 API 环境的其他关键趋势和标准还包括注重开放性和互操作性,同时又不牺牲安全性。公司应关注各种趋势,包括:
OpenAPI Initiative。OpenAPI Initiative (OAS) 是一个组织联盟,由致力于描述 API 的通用语言的组织组成。这种标准化格式有望改善文档、发现和集成。
JSON Web Tokens。另一种开放标准工作是 JWTs,它正在成为 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 提供商的一个很好的例子是 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 发出请求,而无需依赖在客户端和服务器之间建立有状态的关系。
注:为免疑义,本网页所用以下术语专指以下含义: