假设我想为人们提供一个RESTful资源,客户端可以在其中分配ID。
一个人看起来像这样: {"id": <UUID>, "name": "Jimmy"}
现在,客户端应如何保存(或“放置”)它?
PUT /person/UUID {"id": <UUID>, "name": "Jimmy"}
-现在我们要重复验证这个讨厌的重复:正文中的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是由客户端生成的,因此似乎没有什么好主意。
有哪些常见的模式和解决方法?仅在位置上的ID似乎是最教条化的正确方法,但这也使实际实现更加困难。