1. ホーム
  2. http

[解決済み】REST APIでPATCHとPUTのどちらを使うべきですか?

2022-03-27 13:40:55

質問

以下のシナリオに適したメソッドで、レストエンドポイントを設計したい。

グループがある。各グループにはステータスがあります。グループは、管理者によって活性化または非活性化することができます。

というエンドポイントを設計すればよいのでしょうか?

PUT /groups/api/v1/groups/{group id}/status/activate

または

PATCH /groups/api/v1/groups/{group id}

with request body like 
{action:activate|deactivate}

解決方法は?

その PATCH メソッドは、既存のリソースであるグループ ID を更新しているため、ここでは正しい選択です。 PUT を使用する場合のみ使用してください。 置き換え をそのまま使用することができます。

リソースの部分的な変更に関する詳細な情報については RFC 5789 . 具体的には PUT メソッドは、以下のように記述されています。

ハイパーテキスト転送プロトコルを拡張するいくつかのアプリケーションは (HTTP)は、リソースの部分的な変更を行う機能を必要とします。 そのため 既存のHTTP PUTメソッドでは、完全に置き換えることしかできません。 ドキュメントを作成することができます。 本提案では,新しい HTTP メソッド PATCH を追加し,ドキュメントを修正する。 既存の HTTP リソース