PATCH

HTTP の PATCH リクエストメソッドは、リソースへの部分的な変更を適用します。

PATCHCRUD に見られる "update" の概念にやや類似しています(一般的に、 HTTP は CRUD とは異なり、両者は混同するべきではありません)。

PATCH リクエストは、リソースをどのように修正するかの指示のセットと考えられます。これは PUT がリソースの完全な表現を送るのと対照的です。

PATCH はべき等であるとは限りませんが、そうなる可能性もあります。この点は、常にべき等である PUT とは対照的です。「べき等」という言葉は、同じリクエストを何度繰り返しても、リソースが同じ状態になることを意味します。 例えば、自動インクリメントするカウンタフィールドがリソースの不可欠な部分である場合、 PUT は自然にそれを上書きしますが(すべてを上書きするので)、 PATCH は必ずしもそうとは限りません。

PATCH は(PUT のように)他のリソースに対して副作用が発生する場合があります

サーバーが PATCH に対応しているかどうかを調べるために、サーバーは Allow または Access-Control-Allow-MethodsCORS の場合)レスポンスヘッダーのリストに追加することで対応状況を知らせることができます。

PATCH が許可されていることを示すもう1つの(暗黙の)識別方法は、サーバーが受け付けるパッチ文書の形式を指定する Accept-Patch があることです。

リクエストの本文 あり
成功時のレスポンスの本文 あり
安全性 なし
べき等性 なし
キャッシュ 鮮度を表す情報が含まれている場合のみ可能
HTML フォームでの利用 不可

構文

PATCH /file.txt HTTP/1.1

リクエスト

PATCH /file.txt HTTP/1.1
Host: www.example.com
Content-Type: application/example
If-Match: "e0023aa4e"
Content-Length: 100

[変更の記述]

レスポンス

成功レスポンスは 2xx ステータスコードで示されます。

この例の場合、本文が含まれていないため 204 コードで成功レスポンスが示されます。もし 200 コードであれば本文が含まる可能性があります。

HTTP/1.1 204 No Content
Content-Location: /file.txt
ETag: "e0023aa4f"

仕様書

仕様書 題名
RFC 5789: PATCH PATCH Method for HTTP

関連情報