APIのメソッドPUTとPATCHは何が違うのか調べてみた

PUTとPATCHの違いをあまり気にしてこなかった 基本的にフロントエンドなので、仕様書に書かれているメソッドでAPIと通信してきた。 ただ今回、自身が作る側に回り、PUTとPATCHの違いがいまいちピンとこなかったので、調べてみた。 結論 PUTはリソースの完全な置き換えで、PATCHはリソースの一部分のみを更新する場合とのこと。 例えば、 { "name": "John Doe", "age": 30, "email": "john@example.com" } というデータがあり、31歳に変更する場合を考えてみる。 PUTの場合 PUT /users/123 HTTP/1.1 Host: example.com Content-Type: application/json { "name": "John Doe", "age": 31, "email": "john@example.com" } といった感じに変更した年齢以外もまるっと送る必要がある。 PATCHの場合 対してPATCHの場合は、 PATCH /users/123 HTTP/1.1 Host: example.com Content-Type: application/json { "age": 31 } となる。 どっちを使うべきか まあ、この感じだと一部だけを更新したい場合はPATCHを使用するべきなんだと思うけど、その場合はフォームの一部だけが変更されたという監視が必要になるので、それなりの工数がかかる。そのためPUTでいいかなといった結論になりました。

投稿日 · 2024-05-01 · 更新日 · 2024-07-07 · 1 分 · nove-b