API 的全称是 Application Programming Interface,中文译为「应用程序编程接口」——它是预先定义好的一套规则与协议,让两个软件能按统一格式相互通信、交换数据或调用功能,而不必了解对方内部实现。今天绝大多数 API 是基于 HTTP 协议的 Web API,REST 是最主流的风格。理解 API 只需抓住三个角色(客户端、API、服务器)和一次请求-响应循环。
API 是什么
据 IBM 定义:API(Application Programming Interface)是一套让软件应用之间能够相互通信、交换数据与功能的规则或协议;它让开发者可以直接复用其他应用已有的能力,而无需从零开发。据 AWS 进一步解释:API 在概念上可以看作是两个应用程序之间的「服务合约」,合约里规定了两侧如何用请求和响应相互通信,配套的 API 文档则相当于这份合约的使用说明书。
一次 API 调用里实际上有三个角色:
- 客户端(Client):发起请求的一方,可以是网页、手机 App、后台服务或一段脚本;
- API 本身:定义在「客户端」和「服务器」之间的中间层,按约定的格式封装请求、解析响应、把关权限;
- 服务器(Server):真正持有数据或功能、处理请求并返回结果的后端系统。
用一个更生活化的比喻:你去餐厅不会冲进厨房点菜,而是看菜单、告诉服务员你要什么、服务员把菜端给你。API 就是那个「服务员 + 菜单」的组合——它替你把请求转交给服务器,并把处理好的数据按统一格式送回来。对调用方来说,服务器内部怎么实现完全是被封装起来的,只暴露必要的数据与功能。
API 的分类与主要类型
「API」是一个统称,落地形态很多。IBM 和 AWS 都给出了几种主流的分类方式:
| | |
|---|
| | 目前最主流,使用 HTTP 方法(GET/POST/PUT/DELETE)对资源进行无状态操作 |
| 基于 XML 的老牌协议,格式严格、企业内部系统常见 |
| |
| |
| |
| | |
| |
内部 API(Internal / Private) | |
| 把多个 API 的能力合并在一次调用里返回,微服务架构常见 |
| | 走 HTTP 的网络 API,泛指通过 Web 通信的接口 |
| |
| |
| |
需要说明:「Web API」并不等同于「Web 服务」。所有 Web 服务都是 API,但不是所有 API 都是 Web 服务。历史上「Java API」「服务 API」这些叫法出现得比万维网还早,今天我们说的现代 Web API 通常默认指 REST API。据 AWS,如今大多数 API 都是 Web API。
API 的工作原理
一次 API 调用本质上是「客户端发出请求,服务器返回响应」的循环。SAP 把它拆成五个核心要素:
- 端点(Endpoint):API 接收请求的具体地址,形如 https://api.example.com/v1/users;
- 方法(Method):HTTP 动词,GET 取数据、POST 创建、PUT/PATCH 更新、DELETE 删除;
- 请求(Request):客户端发出的消息,包含方法、端点、请求头和可选的请求体;
- 响应(Response):服务器返回的数据,通常是 JSON 或 XML 格式;
- 鉴权(Authentication / Authorization):验证调用方身份并控制其能做什么,常见方式有 API Key、Token、OAuth 等。
一个最简化的 HTTP 请求长这样:
- 请求行:GET https://api.weather.com/v1/forecast?city=Beijing
- 请求头:Authorization: Bearer YOUR_API_KEY
- 响应体:返回一段 JSON,包含温度、湿度、天气状况等结构化数据
调用流程一般是这样:客户端代码按 API 文档组装 URL 与参数 → 通过 HTTP 发送给 API 端点 → 服务器验证鉴权 → 执行业务逻辑 → 把结果按约定格式回传 → 客户端解析数据并呈现。SAP 进一步把 API 分为同步(调用方阻塞等待返回,简单直观)与异步(调用方继续干别的,等回调或事件触发后再处理,响应更快)两类,按场景取舍。
响应里通常会带一个 HTTP 状态码,是排查问题的第一线索:
API 能做什么:常见应用场景
据 IBM 与 Oracle,API 几乎渗透到现代互联网的每个角落,下面这些场景你大概率已经用过:
- 第三方登录:用 Google、微信、Apple 账号一键登录第三方网站,靠的就是 OAuth 类开放 API;
- 在线支付:电商网站里点「用 PayPal / 银联 / 支付宝付款」,是页面在向支付服务商的 API 发起一次鉴权与扣款请求;
- 地图与位置:App 调用高德、百度、Google 地图 API 嵌入地图、查询路线、定位用户;
- 天气与数据:天气 App 本身不存气象数据,而是向气象服务 API 实时拉取并渲染到界面;
- AI 模型调用:现在大家熟知的 OpenAI、Gemini、Anthropic、Deepseek 等大模型,开发者通过各自的 API 集成进自己的产品;
- 企业内部集成:财务系统对接银行流水、电商后台同步订单与库存、CRM 自动拉取营销数据,本质都是 API;
- App 后端通信:手机 App 几乎所有动态内容都是通过 API 拉取的,而不是把数据打包在安装包里。
对企业而言,AWS 总结了 API 的四大价值:集成(不必重复造轮子)、创新(能基于外部能力快速上线新功能)、扩展(一份能力在 Web/iOS/Android 多个端复用)、易于维护(两侧可独立升级而不互相波及)。
使用 API 的注意事项
- 鉴权信息不要泄露:API Key、Token、客户端密钥等价于「账号密码」,放进前端代码或提交到 Git 几乎必然被盗用。
- 遵守速率限制:服务方通常按 RPM(每分钟请求数)、RPD(每天请求数)限额,超出会返回 429。
- 做好版本管理:API 会迭代,旧端点可能下线;模型名、字段名也常变更,生产代码建议把端点与模型 ID 放进配置项。
- 关心数据合规:跨境的 API 调用、数据出境与本地化存储,请遵守所在司法辖区的法律与服务方条款。
- 区分「能调通」与「能上线」:写个 demo 不难,但要做容错、重试、限流、监控、日志与密钥轮换,工程量是另一回事。
API 与相近概念的区别
新手最容易把 API 和几个相邻概念混在一起,一张表说清:
| | |
|---|
| | |
| 把 API 封装成可以直接 import 调用的代码库 | SDK 内部通常依赖 API,是「API 的工具箱」 |
| | Web 服务一定是 API,但 API 不一定是 Web 服务 |
| | 不是 API 本身,而是「管理一组 API 的入口」 |
| | |
API 常见问题
Q:API 到底是一段代码、一个工具,还是一种规范?
A:API 本质上是一套「规范与协议」,定义两端如何通信、消息长什么样;具体的实现可能是一段 SDK、一个 HTTP 端点,甚至一个操作系统调用接口。先理解它「是规则」,再去看具体怎么落地,会顺很多。
Q:API 和 SDK 有什么区别?
A:API 是「合约」,SDK 是「工具箱」。SDK 内部通常会调用 API,但给你的是可以直接 import 的函数与类,省去自己组装 HTTP 请求的麻烦。
Q:Web API、Web 服务、REST API 是一回事吗?
A:经常混用,但严格来说 Web 服务都是 API,REST API 是 Web API 里最主流的一种风格,今天提到「Web API」通常默认指 REST 风格。
Q:调用 API 一定要有 API Key 吗?
A:不一定。完全公开的 API(如一些天气查询)可能免鉴权;但涉及数据、写入、计费的服务几乎都要求 API Key、Token 或 OAuth 等鉴权方式。
Q:API Key 和 Token 有什么不一样?
A:API Key 用来标识「是哪个程序在调用」,通常长期有效;Token(如 OAuth、Bearer JWT)用来代表「是哪个用户、拥有什么权限」,往往有时效且可撤销。生产环境更推荐用 Token。
Q:为什么我请求成功了,body 里却没有我要的数据?
A:多半是 2xx 之外的状态码或返回了错误结构。养成看 HTTP 状态码 + 响应体 error 字段的习惯,比只看返回内容高效得多。
Q:API 调用总是 429 怎么办?
A:429 = 触发速率限制。短期靠按 Retry-After 指数退避重试;长期要么优化调用频率、合并请求,要么向服务方申请提高配额,或考虑升级付费层级。
Q:API 会被淘汰吗?版本更替怎么处理?
A:会,且一定会。常见做法是服务方在 URL 里加版本号(如 /v1/、/v2/),老版本保留过渡期再下线。生产代码请把端点与模型 ID 配置化,不要硬编码。
Q:调用 API 算「编程」吗?
A:算。API 是程序之间对话的「通道」,你要让两套软件配合工作,本质就是在编程——只是抽象层次从「写算法」抬升到「组装调用」。
Q:怎么开始学 API?
A:三步走:①挑一门语言熟悉其 HTTP 客户端(如 Python 的 requests、JS 的 fetch);②找一个文档完整的公开 API(天气、地图、新闻都行)跟一遍;③阅读 OpenAPI / Swagger 规范,理解接口描述语言是怎么描述一个 API 的。
Q:现在大火的 AI 大模型和 API 是什么关系?
A:大模型本身要能嵌入产品,必须提供 API。OpenAI、Google Gemini、Anthropic Claude、国产 DeepSeek、通义等,开发者都是通过它们的 API 把模型能力集成进自己的应用。 Q:API 真的安全吗?会不会被人调光额度?
A:只要密钥管好、鉴权与限流到位,API 本身是安全的。出问题的常见原因都是密钥泄露、权限过大、缺乏监控与告警,而不是 API 本身有缺陷。
以上内容仅供参考,HTTP 协议状态码、API 协议风格与各类别定义可参照 IETF、MDN、IBM、AWS、Oracle 等权威文档;具体服务的鉴权方式、配额与价格以其官方最新说明为准。