5

RESTful PATCH リクエストでフィールド/パラメータの null 値を示す標準化された方法はありますか?

オブジェクトがあり、オブジェクトからプロパティを完全に削除して、その変更を MT/DB に保持したいとします。クライアント側では、(JS で) プロパティを削除するだけですが、REST API レイヤーにパッチを適用するときに、プロパティ (オブジェクトではなくプロパティのみ) を削除する必要があることを示す標準化された方法はありますか?

わかりやすく/例として、オブジェクトの架空の PATCH ルートを次に示します。

PATCH /service/thing/{id}

およびいくつかのサンプル PATCH ペイロード:

単一のプロパティの更新:

{ "myprop": "changed" }

マルチプロパティの更新:

{ "myprop": "changed", "anotherprop": "changed" }

削除したいPATCHの場合、"myprop"明らかにこのペイロードを送信することはできません:

{ }

あなたは次のようなことをしますか:

{ "myprop": undefined }

または、まったく新しい DELETE ルートを作成しますか?

DELETE /service/thing/{id}/myprop

または、他の何か?

4

1 に答える 1

3

PATCHあなたが提案するのと同じように実装します。更新のための部分的な表現を受け入れる方法で。

このようにして、常にJSON部分表現を送信します。

PATCH { "myprop": "newvalue" }

そしてmyprop空の値を削除します。を要求するときに空の値を送り返すのGETはあなた次第です。値はいつでも無視できnullます (これは空とは異なります)。

PATCH { "myprop": null }

nullではなく注意してくださいundefined。値ですnullJSONしかし、これは私の 2 セントです。

于 2013-10-16T22:42:37.717 に答える