资源而不是动作
REST 的核心是把「事物」当资源,用 URI 标识,用 HTTP 方法(GET/POST/PUT/PATCH/DELETE)表示操作。反例是把动作写进路径,如 /getUser、/createOrder,这把 RPC 风格混进了 REST。
常用约定
| 方法 | 含义 | 幂等 |
|---|---|---|
| GET | 读取 | 是 |
| POST | 新建 | 否 |
| PUT | 整体替换 | 是 |
| PATCH | 局部更新 | 否 |
| DELETE | 删除 | 是 |
三个实践要点
- 复数资源名:用
/users而非/user,集合与单项用/users/{id}区分; - 用状态码表达结果:201 新建成功、400 参数错误、401 未认证、404 不存在、500 服务端错误;
- 分页与过滤:列表用
?page=2&size=20,避免一次返回全量拖垮接口。
两个反模式
- 把动词当资源:与其用 POST
/users/{id}/ban,不如用一个状态字段做 PATCH; - 忽略幂等:重试 POST 可能重复创建,关键写操作要配合幂等键。
动手试试
校验接口返回的 JSON:JSON 格式化。