REST API到底是什么?用餐厅点餐来理解
你去餐厅吃饭,服务员不会钻进厨房告诉你怎么做菜。你只需要告诉服务员三件事:点什么菜、给谁吃、怎么做法。厨房负责做菜,服务员负责传递信息。
REST API 就是互联网世界的「服务员」——它让前端页面和后端数据库之间能好好说话,互不干扰。
REST 全称是 Representational State Transfer(表述性状态转移),听起来很唬人,但核心思想就一句话:用统一的方式操作资源。
资源就是互联网上的任何东西——一篇文章、一个用户、一张图片、一条订单。REST 规定了你只能对资源做四种操作:看、新建、改、删。就这么简单。
REST 的四大基本操作
REST 把一切操作归纳为四个 HTTP 方法,对应 CRUD(增删改查):
| 操作 | HTTP 方法 | URL 示例 | 说明 |
|---|---|---|---|
| 查看 | GET | /api/users/123 | 获取某个用户的信息 |
| 新建 | POST | /api/users | 创建新用户 |
| 修改 | PUT/PATCH | /api/users/123 | 更新用户资料 |
| 删除 | DELETE | /api/users/123 | 删除这个用户 |
举个例子。假设你在做一个博客平台,REST API 会这样设计:
GET /api/posts → 列出所有文章
GET /api/posts/42 → 查看第42篇文章
POST /api/posts → 写一篇文章
PUT /api/posts/42 → 修改第42篇文章
DELETE /api/posts/42 → 删除第42篇文章
看到规律了吗?URL 表示资源,HTTP 方法表示操作。这就是 REST 最优雅的地方。
REST 长什么样?实际请求长这样
用 curl 发一个 REST 请求,就这么简单:
# 查看所有文章
curl https://api.example.com/api/posts
# 创建新文章
curl -X POST https://api.example.com/api/posts \
-H "Content-Type: application/json" \
-d '{"title":"我的第一篇","body":"Hello World"}'
后端收到请求后,会返回类似这样的 JSON 响应:
{
"id": 42,
"title": "我的第一篇",
"body": "Hello World",
"created_at": "2026-07-25T07:30:00Z"
}
配合前面讲的 JSON 百科,你会发现 REST API 的数据传输全靠 JSON 搬运。
REST 为什么这么流行?
简单直观
不用学新的协议,不需要额外的工具。只要会发 HTTP 请求,就会用 REST API。浏览器能发的请求,curl 能发,Python 的 requests 能发,任何语言都能发。
前后端分离
前端只管界面渲染,后端只管数据处理。两边通过 REST API 通信,各干各的,互不影响。这也是为什么现在大部分 App 都采用这种架构。
缓存友好
GET 请求天然适合缓存。浏览器、CDN、代理服务器都可以缓存你的 API 响应,大幅提升速度。
生态成熟
从 Postman 到 Swagger,从 Axios 到 Fetch API,整个开发工具链围绕 REST 构建。你遇到的问题,大概率已经有人解决过了。
新手常见的坑
坑一:用 POST 干所有事
有些开发者懒得区分方法,所有请求都用 POST。虽然技术上可行,但 REST 的精髓就在于用正确的方法表达意图。用错了方法,代码可读性会差很多。
坑二:URL 里带动词
/api/getUsers、/api/deletePost 这种设计不是 RESTful。REST 要求 URL 只描述资源,动作交给 HTTP 方法。正确写法是 GET /api/users 和 DELETE /api/posts/42。
坑三:忽略错误码
REST 利用 HTTP 状态码传达结果。200 表示成功,404 表示找不到,401 表示未授权,500 表示服务器出错。别把所有东西都塞进 200 里,那样调试起来会非常痛苦。
实际应用场景
场景一:手机 App 的背后
你打开微博刷动态,App 本身只是一个空壳。真正的数据来自 REST API——后端把文章、评论、点赞数打包成 JSON 发给你的 App。没有 REST API,就没有现代移动互联网。
场景二:第三方服务集成
你想在自己的网站上显示天气预报?大多数天气服务商都提供 REST API。你发一个 GET 请求,对方返回 JSON 格式的天气预报数据。这就是为什么你能在很多网站上看到实时天气。
场景三:微服务之间的通信
大型系统拆分成多个小服务后,服务之间也靠 REST API 互相调用。支付服务通知订单服务「付款成功了」,推荐服务拉取用户历史行为数据——全是通过 REST API 完成的。
总结
REST API 的本质就是用 HTTP 协议来操作互联网上的资源。记住四个字就够了:URL 是名词,方法是动词。
它不需要你学新语言,不需要装新工具。会发 HTTP 请求,就会用 REST。对于刚接触后端开发的人来说,理解 REST 比理解框架重要得多。
想亲手试试?打开浏览器的开发者工具,Network 面板里看到的每一个请求,很可能就是一个 REST API 调用。
相关工具推荐
navbox 上提供了多款 API 调试工具,帮你快速上手 REST:
| 工具 | 用途 |
|---|---|
| API 测试工具 | 在线发送 HTTP 请求,查看响应 |
| JSON 格式化工具 | 美化 API 返回的 JSON 数据 |
| HTTP 状态码查询 | 快速查询各种 HTTP 状态码含义 |
| Curl 命令生成器 | 可视化生成 curl 请求命令 |