RESTful API 是一种设计风格(而不是标准),用于构建基于 HTTP 的网络服务接口。它以简单、直观、资源导向著称,在现代 Web 服务(尤其是前后端分离架构)中非常常见。
REST 全称是:
Representational State Transfer 表述性状态转移
它由计算机科学家 Roy Fielding 在他 2000 年的博士论文中提出。
REST 的核心思想是:
RESTful API 是遵循 REST 风格的 Web API 接口,其特点是:
特点 | 说明 |
---|---|
资源导向 | 把系统中的每个实体抽象为资源,用 URI 标识 |
使用 HTTP 方法 | 利用 GET/POST/PUT/DELETE 显式表示操作 |
无状态 | 每个请求都独立,服务器不保存客户端状态 |
统一接口 | 所有资源都通过类似规则暴露 |
客户端-服务器分离 | 前后端分工明确,互不依赖 UI 或数据存储细节 |
操作 | HTTP 方法 | URI 示例 | 含义 |
---|---|---|---|
查询列表 | GET | /users |
获取用户列表 |
查询单个 | GET | /users/123 |
获取 ID 为 123 的用户 |
新建资源 | POST | /users |
创建一个新的用户 |
更新资源 | PUT/PATCH | /users/123 |
更新 ID 为 123 的用户 |
删除资源 | DELETE | /users/123 |
删除 ID 为 123 的用户 |
✅ 简单易懂:URL 表示资源,HTTP 动词表示操作 ✅ 与 Web 技术天然契合(浏览器本身就是基于 HTTP 的) ✅ 易于前后端分离和维护 ✅ 可以直接使用浏览器/工具调试(如 Postman、curl)
GET /users
→ 返回所有用户
GET /users/1
→ 返回 ID 为 1 的用户信息
POST /users
→ 创建用户(请求体中包含用户信息)
PUT /users/1
→ 更新 ID 为 1 的用户信息(整体替换)
DELETE /users/1
→ 删除 ID 为 1 的用户
请求体和响应通常用 JSON 格式:
{
"id": 1,
"name": "张三",
"email": "zhangsan@example.com"
}
语言 | 常用框架 |
---|---|
Go | Gin、Echo、Beego |
Python | Flask、Django REST framework |
Java | Spring Boot |
Node.js | Express、Koa |