【发布时间】:2015-01-12 10:38:14
【问题描述】:
假设我想为人们提供一个 RESTful 资源,客户端可以在其中分配 ID。
一个人看起来像这样:{"id": <UUID>, "name": "Jimmy"}
现在,客户端应该如何保存(或“PUT”)它?
-
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}- 现在我们有这个令人讨厌的重复,我们必须一直验证:body 中的 ID 是否与路径中的 ID 匹配? - 不对称表示:
PUT /person/UUID {"name": "Jimmy"}-
GET /person/UUID返回{"id": <UUID>, "name": "Jimmy"}
- 正文中没有 ID - ID 仅在位置:
PUT /person/UUID {"name": "Jimmy"}-
GET /person/UUID返回{"name": "Jimmy"}
-
POST似乎不是一个好主意,因为 ID 是由客户端生成的。
常见的模式和解决方法有哪些? IDs only in location 似乎是最教条正确的方法,但它也使实际实施变得更加困难。
【问题讨论】:
标签: rest