Clicky

PUTとPATCHの違いとは?REST APIでの使い分けを解説

Web(ウェブ技術関連)
Web(ウェブ技術関連)
この記事は約2分で読めます。

※記事中に広告情報を含みます。

スキルを手に入れた時、人は強くなれる。
Youtubeでスキルアップを始める 電子書籍でスキルアップを始める
\ワードプレスのスキルアップはこちら!/ WordPress入門読本

HTTPメソッドにおけるPUTとPATCHの役割

Web APIやRESTfulな設計で、よく登場するのが PUTPATCH の2つの更新系メソッドです。
どちらも「既存データの変更」に使われますが、更新の仕方に違いがあります。


PUT:リソース全体を上書き

PUTは、既存のリソース全体を「完全に上書き」することを目的としたメソッドです。

特徴

  • 指定したリソースをすべて新しいデータで置き換える
  • 更新しない項目も含めて、全項目を送る必要がある
  • 冪等性あり(何度送っても結果が同じ)

使用例

PUT /users/123 HTTP/1.1
Content-Type: application/json

{
"name": "Hanako",
"email": "hanako@example.com",
"age": 28
}

この場合、users/123の全情報が送信されたデータで上書きされます。


PATCH:リソースの一部を更新

PATCHは、リソースの一部だけを「部分的に更新」するためのメソッドです。

特徴

  • 変更したい項目だけを送信すればよい
  • PUTよりも効率的で通信量が少ない
  • 冪等性は保証されない(サーバー側の設計による)

使用例

PATCH /users/123 HTTP/1.1
Content-Type: application/json

{
"email": "new-email@example.com"
}

この場合、emailフィールドだけが更新され、他のデータ(名前や年齢など)はそのまま維持されます。


PUTとPATCHの違いまとめ

項目PUTPATCH
更新対象全体一部
データ送信量多い(全項目)少ない(変更分のみ)
冪等性あり通常なし
利用目的全上書きしたいとき一部だけ更新したいとき

REST API設計でのベストプラクティス

シナリオ適したメソッド理由
ユーザーのすべての情報を編集する画面(保存ボタン)PUT全項目を上書きするため
プロフィール画像だけを更新したいPATCH1つのフィールドだけ更新するから
サーバーが部分更新に対応していない場合PUT一貫した更新処理のため

どちらを使うべきか?

  • PUTは「すべての情報がそろっていて、まるごと保存したい場合」
  • PATCHは「一部だけ変更したい場合」や「フロントエンドから少しずつデータを送る場合」

また、サーバー側でPATCHの部分更新処理が複雑になることもあるため、開発側で仕様を統一することが重要です。


まとめ

  • PUT全体の上書きPATCH一部の更新
  • 通信量や処理効率を考えると、更新内容によって使い分けが必要
  • 冪等性の違いにも注意が必要(PUTは冪等、PATCHは非冪等)

REST APIを設計・利用するうえで、PUTとPATCHを正しく理解しておくことは非常に重要です。
プロジェクトや開発ルールに応じて、適切に使い分けましょう。