web-dev-qa-db-ja.com

REST API-リソースの単一フィールドを更新

Driverリソースの残りのエンドポイントがあるとしましょう。私はこのようなPUTメソッドを持っています

myapi/drivers/{id}

{body of put method}

ドライバーを「有効」および「無効」にする機能を追加する必要があります

このような新しいエンドポイントを作成することをお勧めしますか?

PUT myapi/drivers/{id}/enable/false

または、既存のエンドポイントを使用する方が良いですか?既存のエンドポイントを使用する際の問題の1つは、ドライバーに多数のフィールド(約30)があり、「有効」または「無効」ドライバーのみを更新するためにそれらのすべてのフィールドを送信するのはやり過ぎです。

どう思いますか?

21
user1321466

これは、まさにHTTPメソッドPATCHの目的です。リソースに多くのフィールドがあるが、いくつかのフィールドのみを更新したい場合に使用されます。

PUTと同様に、myapi/drivers/{id}にリクエストを送信します。ただし、PUTとは異なり、リクエスト本文で変更するフィールドのみを送信します。

myapi/drivers/{id}/enableのようなエンドポイントを作成することは、あまり有効ではありません。「有効化」自体をリソースと呼ぶことはできないからです。

Spring PATCHエンドポイントの実装例については、この link を参照してください。

14
Sync

PATCH Httpメソッドを使用して1つのフィールドを更新する

PATCH myapi/drivers/{id}/enable
1
whaat