假设我的模型是:
用户:
- ID
- 昵称
我有一个收藏/users/
我希望用户由/users/{id}
而不是检索/users/${nickname}
,因为在一些更复杂的情况下,可能没有“逻辑唯一约束”。
因此,我可以使用的基本 JSON 有效负载例如:
{
id: 123,
nickname: 'someUserName'
}
这里没有什么花哨的。
在 /users/ 上发布
据我所知,用户作为标识符。它是资源表示的一部分,因此它应该在有效负载 (?) 中。
如果我想自己在后端生成 ID 怎么办,例如使用数据库序列?
然后我的有效载荷变为:
{
nickname: 'someUserName'
}
这合适吗?
这个 POST 的输出应该是什么?没有什么?只是一个引用资源位置的标头,包括 ID?
获取 /users/id
当我们获取资源时,我们将其内容加载为 JSON:
{
id: 123,
nickname: 'someUserName'
}
放在 /users/id 上
据我所知,此方法使用的有效负载应该“覆盖”资源内容。如果我们想要部分更新,我们会使用 PATCH。
但如果我这样做:
PUT /users/123
{
id: 456,
nickname: 'someUserName'
}
这是否意味着我们要更新资源的 id?
在 URI 和有效负载中都使用 id 是不是有点多余?
其实我真的不知道怎么处理id
。
我不知道我是否应该在所有 POST / PUT / DELETE 操作中使用相同的资源表示。
我不知道 id 是否应该是唯一(?)资源表示的一部分。但是,如果 id 不是表示的一部分,那么当我使用 GET 列出用户时/users/
,如果没有返回 id,那么我不知道客户端如何获取用户 id...
有人能帮我吗?:)