次のシナリオに適した方法で REST エンドポイントを設計したいと考えています。
グループがあります。各グループにはステータスがあります。グループは管理者によって有効または無効にできます。
エンドポイントを次のように設計すべきでしょうか
PUT /groups/api/v1/groups/{group id}/status/activate
または
PATCH /groups/api/v1/groups/{group id}
with request body like
{action:activate|deactivate}
ベストアンサー1
既存のリソースを更新しているため、このPATCH
方法はここで正しい選択です。グループ ID は、リソース全体を置き換えるPUT
場合にのみ使用してください。
部分的なリソース変更に関する詳しい情報は、RFC 5789具体的には、PUT
以下のようになります。
ハイパーテキスト転送プロトコル (HTTP) を拡張するいくつかのアプリケーションでは、部分的なリソース変更を行う機能が必要です。既存の HTTP PUT メソッドでは、ドキュメントの完全な置き換えしかできません。この提案では、既存の HTTP リソースを変更するための新しい HTTP メソッド PATCH を追加します。