A RESTful API (Representational State Transfer Application Programming Interface) is a way for systems to communicate over the web using HTTP methods. It is based on the principles of REST, an architectural style that defines a set of constraints and principles for creating web services.
🧩 核心概念
概念 | 说明 |
---|---|
资源(Resource) | API 操作的对象,如用户、文章等。每个资源使用唯一的 URL 进行标识。 |
HTTP 动词 | 用于定义操作类型:GET (读取)、POST (创建)、PUT (更新)、DELETE (删除)。 |
URI(Uniform Resource Identifier) | 用于指定资源的位置。例如:/users/123 表示用户 ID 为 123 的资源。 |
无状态(Stateless) | 每次请求都必须包含完成该请求所需的所有信息,服务器不会记住之前的请求状态。 |
📡 常用 HTTP 方法与操作含义
方法 | 用途 | 示例 URI | 描述 |
---|---|---|---|
GET | 获取资源 | /users | 获取所有用户 |
GET | 获取单个资源 | /users/1 | 获取 ID 为 1 的用户 |
POST | 创建资源 | /users | 创建一个新用户 |
PUT | 更新资源(整体替换) | /users/1 | 更新 ID 为 1 的用户 |
PATCH | 更新资源(局部修改) | /users/1 | 修改用户的一部分属性 |
DELETE | 删除资源 | /users/1 | 删除 ID 为 1 的用户 |
🛠️ 示例:用户资源的 RESTful API 设计
假设我们有一个管理用户信息的系统:
GET /users -> 获取用户列表
GET /users/1 -> 获取用户 1 的详细信息
POST /users -> 创建新用户
PUT /users/1 -> 更新用户 1 的所有信息
PATCH /users/1 -> 局部更新用户 1
DELETE /users/1 -> 删除用户 1
✅ RESTful API 的设计原则
- 使用名词而非动词表示资源(URL 中不要用 create/get/delete)
- 使用 HTTP 状态码表示结果(如 200、201、204、400、404、500)
- 保持接口简洁、可预测
- 支持分页、过滤、排序
- 返回标准 JSON 响应格式
🧪 示例响应
{
"id": 1,
"name": "Alice",
"email": "alice@example.com"
}
发表回复