クライアントがIDを割り当てることができる人のためのRESTfulリソースが欲しいとしましょう。
人は次のようになります。 {"id": <UUID>, "name": "Jimmy"}
さて、クライアントはそれをどのように保存(または "PUT")すべきでしょうか?
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は最も独断的に正しい方法のように思われますが、実際の実装も難しくなります。