开发人员所说的“API”是什么意思

2025-06-08

开发人员所说的“API”是什么意思

📣这篇文章最初以“什么是 API?”为题发表于The Bearer Blog上。

API 已经成为开发者们随意使用的包罗万象的术语之一,他们往往不加思索地使用上下文。每周你都会看到诸如“如何使用 Twitter API”、“新框架 X 很棒,因为它的 API 接口很少”以及“构建 API 的最佳实践”之类的讨论。

API 是数据源吗?它是一种服务吗?它是一种调用原生功能的方式吗?事实上,在现代软件开发中,它可以指代任何一种。在深入探讨导致这种混淆的各种用例之前,让我们先来了解一下它的具体含义。

API 是一个接口

API 代表应用程序编程接口 (API)。它是一种以编程方式与应用程序交互的方式。编程接口部分更简单。它是一组钩子,允许用户(API 的使用者)以某种方式使用应用程序的底层功能。接口是与对象或设备交互的一种方式,而编程接口是应用程序与其他应用程序交互的一种方式。

其工作原理取决于所使用的应用程序和语言。因此,文档至关重要。它指导您如何使用 API、支持哪些操作以及如何入门。

API 中的“应用”部分容易让人混淆。我们先来看一下最常见的“应用”—— Web 服务。

SaaS、Web API 和服务

大多数开发者所说的 API 指的是 REST 形式的服务,或者近年来出现的 GraphQL。这些服务 API(有时也称为 Web API)允许应用程序与其他应用程序的功能和数据进行交互。这包括各种操作,从使用 Twitter API 检索用户的关注者,到使用微软的认知视觉 API 训练机器学习模型。这些 API 通常包含某种形式的身份验证,例如 OAuth 或“API 密钥”,用于启用对 API 的调用。

这类 API 既可以在公司内部使用,也可以对外开放。很多情况下,公司会为部分内部服务提供外部 API,以此进一步利用产品功能盈利。谷歌地图就是一个很好的例子。谷歌地图 API 在谷歌内部的许多其他产品(例如搜索)中使用,但也可供第三方付费使用。

底层“平台”

应用程序的另一个定义是底层平台或操作系统。当你考虑客户端 JavaScript 时,诸如 DOM 操作、Fetch 请求和鼠标定位等功能都属于 API 类型。在这种情况下,浏览器就是应用程序。事实上,在 Node.js 开发和客户端浏览器开发之间切换时,最大的障碍之一不是学习新的 JavaScript,而是学习特定于平台的 API。

同样,在 iOS 等移动平台上工作的开发者会与暴露操作系统部分功能的 API 进行交互。这些 API 可能是摄像头或运动传感器等硬件功能,也可能是“点击”或“滑动”等交互功能。在这种情况下,操作系统就是应用程序。

框架和库

您经常听到“API”一词的另一个领域与框架和库有关。这些是构建在语言或平台之上的抽象,用于添加功能或简化用例。例如,在 Ruby 和 Node.js 中,存在许多 HTTP 库,用于简化或添加用于发出 HTTP 请求的内置功能。

在这种情况下,应用程序就是框架。当我们谈论库或框架的某个部分时,我们通常将其称为库的 API。例如:“Axios 使用简化的 API 来发出请求”或“React 的 context API 允许您通过组件树传递数据”。当开发者提到框架或库的 API 接口时,他们指的是框架中存在的 API 数量或 API 的各个部分。

学习新的 API

学习 API 是了解它能为您的应用程序带来哪些益处的第一步。一些社区提供了一致的体验。例如,Ruby 有RubyDoc.info。虽然乍一看可能感觉难以理解,但它标准化了该语言大多数核心和第三方功能的文档。浏览器制造商已联合起来,支持MDN作为学习现代浏览器 API 的推荐平台。

Bearer,我们谈论 API 通常指的是 Web API。您的应用程序会集成这类 API,并依赖它们来添加特性或功能。学习现代 Web API 时,您会逐渐了解一些趋势,并掌握一些API 文档导航的最佳实践

鏂囩珷鏉ユ簮锛�https://dev.to/bearer/what-developers-mean-when-they-say-api-2ga8
PREV
Working Remotely: Insights from the Bearer Team
NEXT
在 Node.js 中构建您自己的 Dev.to API 客户端