サイトアイコン プログラマー(PG)・システムエンジニア(SE)になるための入門講座

PUTとPATCHの違いとは?初心者向けに更新方法・使い分け・APIでの利用例をわかりやすく解説

PUTとPATCHの違いとは?初心者向けに更新方法・使い分け・APIでの利用例をわかりやすく解説

結論

PUTとPATCHは、どちらもWebシステムやAPIでデータを更新するためのHTTPメソッドです。違いは更新方法にあります。PUTはデータ全体を更新するのに対し、PATCHは変更したい項目だけを更新するのが基本です。

IT業務では、REST APIのテストやシステム連携、クラウドサービスとの連携などで頻繁に利用されるため、違いを理解しておくことが重要です。

PUTとPATCHとは

PUTとPATCHは、HTTP(HyperText Transfer Protocol)の更新処理で利用されるメソッドです。

項目 PUT PATCH
用途 データ全体の更新 一部項目の更新
送信するデータ 全項目 変更する項目のみ
通信量 多くなりやすい 少なく済む
APIでの利用 設定情報の上書き 一部の値だけ変更

どんな場面で使われるのか

PUTを使う場面

例として、社員情報を更新する場合、氏名・住所・電話番号・メールアドレスなど、すべての情報を送信して更新します。

PATCHを使う場面

変更する項目だけを送信するため、通信量を抑えられます。

PUTとPATCHのイメージ

社員情報が次のようになっているとします。

項目 現在の値
氏名 山田 太郎
部署 営業部
電話番号 03-1111-1111
メール yamada@example.co.jp

PUTの場合

電話番号だけ変更したい場合でも、氏名・部署・電話番号・メールアドレスなど、すべての情報を送信して更新します。

PATCHの場合

電話番号だけ変更する場合は、その項目だけ送信します。

不要なデータを送らずに済むため、効率よく更新できます。

なぜ使い分けるのか

更新方法を区別することで、データの整合性や通信効率を保てるためです。

PUTは全体を最新状態へ置き換える処理に向いています。一方、PATCHは変更箇所だけを更新するため、ネットワーク負荷を抑えられます。

初心者が混乱しやすいポイント

PUTは「追加」ではない

PUTは既存データを更新する目的で利用されます。APIによっては存在しないデータを新規作成する場合もありますが、多くの業務システムでは更新として利用されています。

PATCHは必ず一部更新とは限らない

仕様によってはPATCHでも複数項目をまとめて更新できます。重要なのは、「必要な項目だけ送信できる」という点です。

API仕様書を確認する

同じ更新処理でも、システムによってPUTを使う場合とPATCHを使う場合があります。実際の業務ではAPI仕様書を確認することが大切です。

実際のIT現場での利用例

最近のクラウドサービスでは、PATCHを利用した一部更新が採用されるケースが増えています。

筆者が現場で経験した失敗談

APIの動作確認でPATCHを使うべき処理にPUTを実行し、変更しない項目まで上書きしてしまったことがありました。その結果、一部の設定値が初期値へ戻ってしまい、原因調査に時間がかかりました。

更新系APIでは「全体更新なのか、一部更新なのか」を確認してから実行することが重要です。

業務でよくあるトラブル

原因の切り分け

確認項目 内容
HTTPメソッド PUTかPATCHか
送信データ 必要な項目が含まれているか
API仕様 対応メソッドを確認する
HTTPステータスコード 正常終了かエラーか
レスポンス内容 更新結果を確認する

確認する順番

  1. API仕様書を確認する
  2. PUTとPATCHの指定を確認する
  3. 送信データを確認する
  4. HTTPステータスコードを確認する
  5. 更新結果を確認する
  6. サーバーログを確認する

GUIで確認する方法

Google Chrome

  1. F12キーを押す
  2. Networkを開く
  3. 更新処理を実行する
  4. 対象通信を選択する
  5. Method欄でPUTまたはPATCHを確認する

HeadersではHTTPメソッド、Payloadでは送信したデータを確認できます。

コマンドプロンプトで確認する方法

PUT

curl -X PUT https://example.com/api/users/100

PATCH

curl -X PATCH https://example.com/api/users/100

APIテストではJSONデータを送信して更新結果を確認します。

PowerShellで確認する方法

PowerShellではInvoke-RestMethodやInvoke-WebRequestを利用してPUTやPATCHを実行できます。

APIの更新テストや自動化スクリプトでよく利用されます。

ログの確認方法

更新処理が成功したか、どのHTTPメソッドで実行されたかを確認できます。

イベントビューアーの確認方法

PUTやPATCH自体はイベントビューアーへ記録されません。

WebサービスやAPIサーバーでエラーが発生している場合は確認します。

  1. Windows+Rキー
  2. eventvwr.msc を入力する
  3. Windowsログ
  4. アプリケーション
  5. エラーや警告を確認する

確認結果の見方

HTTPステータスコード 意味
200 OK 更新成功
204 No Content 更新成功(戻り値なし)
400 Bad Request 送信内容に誤り
401 Unauthorized 認証エラー
403 Forbidden 権限不足
404 Not Found 対象データが存在しない
405 Method Not Allowed HTTPメソッドが誤っている
500 Internal Server Error サーバー内部エラー

影響範囲を考える

ユーザー側・サーバー側の切り分け

確認対象
ユーザー側 送信データ、認証情報、HTTPメソッド
サーバー側 API、データベース、アプリケーション
ネットワーク FW、プロキシ、通信制御
権限 更新権限の有無

初心者がやりがちなミス

業務で上司へ報告するポイント

エスカレーションするタイミング

GET・POST・PUT・PATCHの違い

HTTPメソッド 用途 特徴
GET 取得 データを取得する
POST 登録 新しいデータを作成する
PUT 更新 データ全体を更新する
PATCH 更新 変更箇所だけ更新する

関連するIT用語

よくある質問(FAQ)

PUTとPATCHはどちらを使えばよいですか?

API仕様書で指定されているHTTPメソッドを使用します。一般的には、全体を更新する場合はPUT、一部だけ更新する場合はPATCHを使用します。

PUTで一部の項目だけ送信しても問題ありませんか?

APIの実装によりますが、送信していない項目が初期値や空の値で上書きされる場合があります。PUTを使用する際は、必要な項目をすべて送信することを推奨します。

PATCHの方が通信量は少なくなりますか?

はい。変更する項目だけを送信するため、一般的にはPUTより通信量を抑えられます。

POSTでも更新できますか?

システムによってはPOSTを更新処理に利用することもあります。ただし、REST APIでは更新処理にはPUTまたはPATCHを使用する設計が一般的です。

まとめ

PUTとPATCHはどちらもデータ更新に使用されるHTTPメソッドですが、PUTはデータ全体を更新し、PATCHは必要な項目だけを更新するという違いがあります。

IT業務では、REST APIの仕様書を確認し、適切なHTTPメソッドを使用することが重要です。特にPUTは送信していない項目まで影響する可能性があるため、更新前には送信内容を十分に確認しましょう。PATCHは通信量を抑えながら柔軟に更新できるため、クラウドサービスやモダンなWeb APIで広く利用されています。

モバイルバージョンを終了