打开天气 App,你想知道今天有多少度。App 可以向天气服务取得数据,再把它画成你看得懂的温度和图标。让程序按约定调用另一方能力的这套接口,就叫 API。你点的是屏幕上的按钮,程序用的是 API。

一次查询怎么完成
API 的全称是 Application Programming Interface,中文通常叫“应用程序编程接口”。
假设做一个天气页面,向 Open-Meteo 查询气温。请求要给出地点的经纬度,并指定天气变量。例如,temperature_2m 表示距地面两米处的气温,放进 current 参数,就表示要取当前天气条件中的这一项[1]。
一次查询可以这样走:
- 页面发出请求。 它向约定的服务地址说明地点,以及“我要这一地点的当前气温”。这里的请求,就是程序按规定提出的一次调用;地点和天气项目叫参数。
- 天气服务处理请求。 它根据这些参数提供相应的天气数据。数据来自服务方的天气模型,页面不需要自己运行整套天气模型。
- 服务返回结果。 结果中可以有时间、气温数值和单位等字段,页面按约定找到需要的内容。
- 页面把结果画出来。 假如结果中的温度是 24,单位是摄氏度,页面就可以显示“24°C”。这个数字只是说明显示过程的示意值,不是实时天气或实测记录。

你看到的太阳图标、字体和颜色,属于页面的显示设计。API 返回的数据与最终看到的界面,是这个过程中的两件事。
Open-Meteo 用 JSON 返回这类结果。JSON 是组织数据的文本格式,让程序区分时间、温度等字段。API 约定怎样调用能力,JSON 约定怎样组织数据;其他 API 也可以用别的格式。这里的当前天气条件来自服务方的天气模型[1],并不表示页面自己测到了气温。
API 与接口的关系
“接口”是个范围更宽的词。你点击的软件按钮和菜单属于用户界面,开发者写代码调用的程序接口则是 API。说到硬件时,USB-C 这样的连接口也会被叫作接口。
API 本来就是一种接口;在开发者聊天的语境里,“这个接口返回了什么”中的“接口”,往往直接指某个 API。
人通过界面使用软件,程序则按 API 的规则调用能力。这组供软件交互使用的能力与规则,就是 API 的接口约定[2]。
为什么要约定规则
回到天气页面。它需要的是某个地点的天气结果,并不需要知道天气服务内部怎样整理模型数据、用了哪些存储系统。
API 给双方划出合作边界:提供方说明能做什么、调用要给什么信息、结果怎样表达;调用方按约定使用。提供方可以调整内部实现,但要让已有调用继续工作,对外约定就需要保持兼容。
这也能解释“接入 API”这句话:开发者把自己的程序写成能按对方规则调用的样子,让已有能力进入自己的软件。天气页面可以调用天气服务,其他程序也可以借助各自的 API 查询资料、处理文件或控制某种功能。
API 不会自动替开发者完成这些连接。参数怎么组织,取得结果以后做什么,失败时怎样提醒用户,都需要调用方写好相应的处理。
所有 API 都要联网吗
天气例子用到了网络,但 API 的范围比网络服务大。
浏览器就内置了许多 API。网页可通过 Web Audio API[3] 调整音量或添加效果,音频处理由浏览器完成,调用本身不要求把音频送到远端服务器。素材可能从网络取得,也可能来自本机,那是另一个环节。
因此,API 可以连接网络上的服务,也可以让程序使用本机软件或组件的能力。它不一定是一条网址,也不一定对应另一个独立运行的 App。

有接口也要有权限
提供一个 API,并不意味着所有人都能随意使用它的全部功能。
有些公开数据接口允许匿名查询,有些调用则要带 API key 或访问令牌,供服务确认身份及权限。这些凭据的具体作用由服务决定。以 GitHub REST API 为例,认证令牌仍要具备相应的权限或范围[4],有令牌不等于能调用所有功能。
调用也可能失败。参数写错,服务可能返回错误说明;权限不够,请求可能被拒绝;网络中断,则可能根本收不到结果。Open-Meteo 的文档就列出了参数不正确时的错误响应。
“支持 API”还不足以说明能否接进你的软件。开放的能力是否符合需求、输入和结果能否处理、是否拥有调用权限,这些约定对得上,程序之间的合作才有基础。
参考资料(核对于 2026 年 10 月 5 日)
- [1] Open-Meteo 官方文档:https://open-meteo.com/en/docs
- [2] MDN 的 API 定义:https://developer.mozilla.org/en-US/docs/Glossary/API
- [3] MDN 的 Web API 入门:https://developer.mozilla.org/en-US/docs/Learn_web_development/Extensions/Client-side_APIs/Introduction
- [4] GitHub REST API 文档:https://docs.github.com/en/rest/authentication/authenticating-to-the-rest-api