什么是 API:API 与网页的区别、REST 基础与 HTTP 状态码入门
"API" 是程序员嘴里出现频率最高的词之一,但对刚接触网站开发的人来说,它常常是一个听过但说不清的概念。这篇文章用餐厅点餐的比喻,把 API 到底是什么、它和网页有什么区别、REST 又是什么一次讲清楚。
一、API 到底是什么:餐厅里的服务员
想象你去一家餐厅。你不会直接走进后厨自己炒菜,而是把需求告诉服务员,服务员把需求转达给厨房,再把做好的菜端回给你。API 就是这个服务员——它是两个软件之间约定好的"传话窗口",一方提出请求,另一方按规矩响应,双方都不用知道对方内部怎么运转。
比如你打开一个天气 App,App 本身没有天气数据,它通过调用天气服务商的 API,把"上海今天的天气"这个请求发过去,服务商返回一串数据,App 再把数据渲染成好看的界面。App 和天气服务商之间,就是靠 API 对话的。
二、API 和网页有什么区别
网页和 API 都在互联网上传输数据,但目的完全不同:
| 对比项 | 网页 | API |
|---|---|---|
| 给谁看 | 给人类看 | 给程序看 |
| 返回内容 | HTML 页面(含样式、排版) | 结构化数据(通常是 JSON) |
| 访问方式 | 浏览器打开 URL | 程序发请求并解析返回值 |
| 典型例子 | 打开博客文章页 | 查询商品库存接口 |
关键区别在于:网页返回的是"长什么样的页面",API 返回的是"数据本身"。很多 API 也能用浏览器地址栏访问,但看到的是乱糟糟的一串 JSON,因为浏览器不会帮你排版。
三、REST 基础:四个最常用的方法
REST(Representational State Transfer)是目前最常见的 API 设计风格,它把数据看作"资源",用 HTTP 方法表达对这个资源的操作。最常见的四种:
| 方法 | 作用 | 类比 |
|---|---|---|
| GET | 读取资源 | 看菜单 |
| POST | 新建资源 | 下单 |
| PUT | 整体更新资源 | 改订单 |
| DELETE | 删除资源 | 退订 |
例如一个博客系统的接口:GET /articles 获取文章列表,POST /articles 发布新文章,PUT /articles/5 修改第 5 篇文章,DELETE /articles/5 删除第 5 篇。想系统学习接口设计规范,可看RESTful API 设计最佳实践。
四、一次请求与一次响应长什么样
一次 API 调用由"请求 + 响应"两部分组成。请求通常包含四样东西:
- URL:请求发给谁,例如
https://api.example.com/articles/5; - 方法:要做什么操作(GET/POST/PUT/DELETE);
- 请求头(Headers):附加信息,如身份凭证、期望的返回格式;
- 请求体(Body):要提交的数据,POST 新建时通常带 JSON。
响应包含两部分:状态码 + 返回数据。返回数据最常见的是 JSON 格式,例如天气接口可能返回:
{
"city": "上海",
"temperature": 31,
"condition": "多云",
"updated_at": "2026-08-12T12:00:00+08:00"
}
程序拿到这段 JSON 后逐字段解析、展示,这就是一次完整的 API 交互。后端接口怎么一步步写出来,可以参考Node.js 写一个 API 示例。
想亲手试一次,最简单的办法是打开终端用 curl 命令:curl 'https://api.example.com/weather?city=shanghai',回车后终端会直接打印出返回的 JSON。不习惯命令行的话,用 Postman 之类的图形化工具发送请求更方便,适合边看边调,用法可参考Postman 接口测试。
五、HTTP 状态码入门:一眼看懂成功还是失败
状态码是三位数字,用来告诉调用方这次请求的结果。记住三个区间就够用:
| 区间 | 含义 | 常见例子 |
|---|---|---|
| 2xx | 成功 | 200 成功、201 已创建 |
| 3xx | 重定向 | 301 永久跳转、304 未修改 |
| 4xx | 客户端出错 | 400 请求格式错误、401 未登录、403 无权限、404 找不到 |
| 5xx | 服务端出错 | 500 服务器内部错误、503 服务不可用 |
日常排查 API 问题时,先看状态码能省一半力气:4xx 说明多半是你这边的问题,检查参数和凭证;5xx 说明是对方服务器的问题,等一会儿再重试。遇到报错怎么一步步排查,可看API 错误处理指南。
六、常见问题(FAQ)
Q1:API 一定要用 JSON 吗? 不一定。JSON 只是最常见的格式,还有 XML、文本等,但 JSON 因为易读、跨语言友好,是当前事实标准。
Q2:调用 API 需要付费吗? 看情况。很多服务提供免费额度,超出后按调用次数或流量计费,例如天气、翻译、地图类接口都有免费层。接入前一定要读文档里的价格页。
Q3:我没法访问某个 API,怎么办? 先确认是否有限流或鉴权要求(很多 API 需要 API Key),再确认域名是否可达,最后看报错是 4xx 还是 5xx。
Q4:REST 是唯一的 API 风格吗? 不是。还有 GraphQL、gRPC、WebSocket 等。REST 因为简单通用,最适合新手入门,其它风格可以之后再看REST 与 GraphQL 对比。
七、小结
一句话记住:API 是两个程序之间约定好的对话窗口,网页给人看、API 给程序用,REST 用四种方法表达增删改查,状态码帮你快速判断成败。 想了解更多接口对接的实操,可以收藏后端对接分类。