目录

一、URI 是 REST 的灵魂
在 REST 架构中:
URI = 资源(Resource)的唯一标识。
每一个 URI 都代表系统中的一个 资源(对象、集合或状态)。 客户端通过 HTTP 方法(GET/POST/PUT/DELETE)对资源执行操作。
例如:
GET /users/123
表示获取 id=123 的用户资源。
二、URI 设计的基本原则
| 原则 | 含义 | 示例 |
| 资源导向(Resource-Oriented) | URI 表示“名词”,而不是“动作” | ✅ /users/123 ❌ /getUser |
| 层次清晰(Hierarchical) | 使用层级结构反映资源关系 | /users/123 /orders/456 |
| 避免动词(Use Nouns, not Verbs) | 动作由 HTTP 方法表达 | ✅ GET /devices ❌ /listDevices |
| 使用复数名词 | 保持语义一致 | /users /devices /orders |
| 小写字母 + 短横线分隔 | 可读性高、兼容性好 | /user-roles /device-logs |
| 路径即资源,操作用方法表达 | GET 查询、POST 创建、PUT 更新、DELETE 删除 | — |
三、URI 设计的层次结构
1. 顶层:资源集合
/users
/devices
/orders
2. 二级:单个资源
/users/{userId}
/devices/{deviceId}
3. 子资源(资源间的从属关系)
/users/{userId}/orders
/users/{userId}/orders/{orderId}
4. 复合资源(跨资源聚合)
/reports/sales
/analytics/devices/status
5. 特殊操作(通过“动作资源”表达)
REST 推荐不要直接用动词,但可以设计为“子资源动作”:
POST /devices/{id}/lock
POST /devices/{id}/unlock
不推荐:
POST /lockDevice?id=123 ← ❌ 这属于 RPC 风格,不是 REST。

REST API URI(统一资源标识符)设计原则与实践&spm=1001.2101.3001.5002&articleId=154393894&d=1&t=3&u=e3de4331cd4a401a8e71fa3590bf7cb1)
891

被折叠的 条评论
为什么被折叠?



