什么是 REST?
REST(表述性状态转移)是一种用于设计网络应用程序的架构风格,使用 HTTP 请求对由 URL 标识的资源执行 CRUD 操作(创建、读取、更新、删除)。它强调无状态通信和统一接口。
快速了解
| 全称 | 表述性状态转移 |
|---|---|
| 创建时间 | 2000 年由 Roy Fielding 定义 |
| 规范文档 | 官方规范 |
REST 工作原理
REST 由 Roy Fielding 在其 2000 年的博士论文中定义。它提供了一组约束,遵循这些约束可以创建可扩展和可维护的 Web 服务。RESTful API 使用标准 HTTP 方法:GET(读取)、POST(创建)、PUT/PATCH(更新)和 DELETE(删除)。资源以 JSON 或 XML 等格式表示。REST 的无状态特性意味着每个请求都包含处理它所需的所有信息,使其具有高度可扩展性。虽然不是标准,但 REST 已成为 Web API 的主导架构。
主要特点
- 无状态 - 每个请求都是独立的
- 使用标准 HTTP 方法(GET、POST、PUT、DELETE)
- 资源由 URL 标识
- 支持多种数据格式(JSON、XML)
- 客户端-服务器架构分离
- 可缓存响应以提高性能
常见用途
- Web 服务 API
- 移动应用后端
- 微服务通信
- 第三方集成
- 资源的 CRUD 操作
示例
RESTful API 端点:
方法 端点 描述
GET /api/users 列出所有用户
GET /api/users/123 按 ID 获取用户
POST /api/users 创建新用户
PUT /api/users/123 更新整个用户
PATCH /api/users/123 部分更新
DELETE /api/users/123 删除用户
HTTP 响应代码:
200 OK - 成功的 GET/PUT/PATCH
201 Created - 成功的 POST
204 No Content - 成功的 DELETE
400 Bad Request - 无效请求
401 Unauthorized - 需要认证
404 Not Found - 资源未找到
500 Server Error - 内部错误
请求示例:
GET /api/users/123 HTTP/1.1
Host: api.example.com
Authorization: Bearer token123
Accept: application/json