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

2 min read
Table of Contents

PUTとPATCHの違いをあまり気にしてこなかった

基本的にフロントエンドなので、仕様書に書かれているメソッドでAPIと通信してきた。

ただ今回、自身が作る側に回り、PUTPATCHの違いがいまいちピンとこなかったので、調べてみた。

結論

PUTはリソースの完全な置き換えで、PATCHはリソースの一部分のみを更新する場合とのこと。

例えば、

{
"name": "John Doe",
"age": 30,
"email": "john@example.com"
}

というデータがあり、31歳に変更する場合を考えてみる。

PUTの場合

Terminal window
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でいいかなといった結論になりました。

My avatar

Thanks for reading my blog post! Feel free to check out my other posts or contact me via the social links in the footer.


More Posts

Comments