RESTful API 简介
REST(Representational State Transfer)是一种架构风格,用于设计网络服务。RESTful API 是符合 REST 原则的 Web API,具备统一、简洁、无状态等特性,广泛应用于 Web、移动应用、微服务之间的通信。
🌐 核心理念
RESTful API 的设计基于资源(Resource)而非动作。每个资源通过 URL 表示,使用标准 HTTP 方法进行操作。
🧱 资源与操作映射
| HTTP 方法 | 操作类型 | 示例含义 | 
|---|---|---|
| GET | 读取资源 | 获取用户信息 | 
| POST | 创建资源 | 新建一条订单 | 
| PUT | 更新资源(完整替换) | 更新整个用户信息 | 
| PATCH | 局部更新 | 修改用户邮箱 | 
| DELETE | 删除资源 | 删除某个评论 | 
📦 URL 设计规范
# 用户资源
GET    /users           # 获取所有用户
GET    /users/123       # 获取指定用户
POST   /users           # 创建新用户
PUT    /users/123       # 更新用户信息
DELETE /users/123       # 删除用户
# 嵌套资源(如订单)
GET    /users/123/orders        # 获取用户订单
POST   /users/123/orders        # 创建订单
tip
URL 使用名词复数,操作通过 HTTP 动作语义体现,无需在 URL 中加动词(如 /getUsers 是反 REST 风格)
📄 示例响应格式(JSON)
{
  "id": 123,
  "name": "Alice",
  "email": "alice@example.com"
}
🔒 身份验证与安全
常用方式:
- Token-Based(如 JWT)
 - OAuth2
 - API Key
 
请求示例:
GET /users/123 HTTP/1.1
Authorization: Bearer <token>
🧪 状态码约定
| 状态码 | 含义 | 
|---|---|
| 200 OK | 请求成功 | 
| 201 Created | 成功创建资源 | 
| 204 No Content | 成功但无返回 | 
| 400 Bad Request | 请求参数错误 | 
| 401 Unauthorized | 未认证 | 
| 403 Forbidden | 无权限访问 | 
| 404 Not Found | 资源不存在 | 
| 500 Internal Server Error | 服务器内部异常 | 
✨ RESTful vs RPC
| 特性 | RESTful | RPC(Remote Procedure Call) | 
|---|---|---|
| 关注点 | 资源 | 操作 | 
| 接口风格 | URL + HTTP 方法 | 接口名称 + 参数 | 
| 常见格式 | JSON, XML | gRPC, Protobuf | 
| 适合场景 | Web, 移动 API | 内部微服务调用,高性能通信 |