POST、PUT、PATCHの違い
REST APIなどを使っているとPOST、PUT、PATCHの使い方に悩むことがある。特にPUTとPATCHの違いはわかりずらい上に実際の挙動を見て戸惑うこともある。
REST APIで各HTTPメソッドがどのように振る舞うかは実装依存なのでケースバイケースで調査する必要があるが一般的な定義を覚えておくと理解が早くなる。
POST
- リソースを作成する
- 多くのAPIで実装されている
PUT
- 既存リソースを新しいものに置き換える
- 新しいリソースの中に既存リソースにある要素がない場合、その要素は削除される。
- PUTがないAPIもある
PATCH
- 既存リソースに新しいものを付け足す
- 新しいリソースの中に既存リソースにある要素がない場合でもその要素は削除されない
- PATCHがないAPIもある