在这个前后端分离(前端和后端均为独立的应用,只通过API/接口通信)成为应用编程主流的时代,RESTful 规范(REST全称是:Representational State Transfer)应该是程序员必须掌握的API/接口设计规范。
RESTful 规范是一种基于 HTTP 协议设计网络接口的架构风格,旨在构建可扩展、清晰、易于理解的 Web 服务。
其核心思想是将资源作为中心,通过标准的 HTTP 方法对资源进行操作,强调无状态通信和统一接口。
RESTful 规范的核心要点
-
资源定位:使用 URI(统一资源标识符)唯一标识资源,例如/users表示用户资源集合,/users/123表示 ID 为 123 的具体用户。
-
HTTP 方法语义:通过标准 HTTP 方法表达对资源的操作:
- GET:获取资源(查询)
- POST:创建新资源
- PUT:更新资源(全量更新)
- PATCH:部分更新资源
- DELETE:删除资源
-
无状态:服务器不存储客户端状态,每次请求需包含所有必要信息。
-
响应格式:通常使用
JSON或XML作为数据交换格式,并通过 HTTP 状态码表达请求结果(如 200 表示成功,404 表示资源不存在)。 -
可缓存:支持 HTTP 缓存机制,减少重复请求。
-
层级结构:资源可通过
URI形成层级关系,如/users/123/orders表示用户 123 的订单。
RESTful 规范的样例
以 “用户管理系统” 为例,我们可以设计一组符合 RESTful 规范的 API,通过 HTTP 方法和 URI 的组合来操作 “用户” 资源:
| 操作目的 | HTTP 方法 | URI 示例 | 说明 | 成功响应状态码 |
|---|---|---|---|---|
| 获取所有用户 | GET | /api/users | 返回用户列表 | 200 OK |
| 获取单个用户 | GET | /api/users/1001 | 返回 ID 为 1001 的用户详情 | 200 OK |
| 创建新用户 | POST | /api/users | 请求体携带新用户信息,创建后返回结果 | 201 Created |
| 全量更新用户 | PUT | /api/users/1001 | 请求体携带完整用户信息,覆盖原有数据 | 200 OK |
| 部分更新用户 | PATCH | /api/users/1001 | 仅更新请求体中指定的字段(如邮箱) | 200 OK |
| 删除用户 | DELETE | /api/users/1001 | 删除 ID 为 1001 的用户 | 204 No Content |
URI 的核心是标识 “资源”,而多数资源在系统中是以 “集合” 形式存在的,所以这里使用users。
🪐祝好运🪐