APIを設計する際に、PUTペイロードに更新対象のリソースのIDを含める必要があるかどうかという疑問に思いつきました。
これは私たちが現在持っているものです:
PUT /users/123 Payload: {name: "Adrian"}
ルートコードはURIからIDを抽出し、更新を続行します。
APIの最初のユーザーは、ペイロードにIDを許可しない理由を疑問視しています。
PUT /users/123 Payload: {id: 123, name: "Adrian"}
許可しなかった理由は、ペイロードとURIでIDが重複しているためです。
これについてもう少し考えて、リソースをURIに結合しています。
URIにIDがない場合、ペイロードを修正する必要があります。
PUT /no/id/here Payload: {name: "Adrian"} < What user???
しない理由はありますか?
/users
(「新規」を追加する必要はありません)。