3

Webアプリケーションを作成するためにRESTAPIを開始しています。

ほとんどのWebサイトではDELETE、のようなURIにHTTPリクエストを発行するリソースを削除するように指示されています/{resource}/{resource-id}。取得してから更新された可能性のあるリソースや、間違ったリソースを削除することを恐れています。

リクエストと一緒にリソースのタイムスタンプを送信するように要求しても大丈夫ですか?どこにも見たことがありませんが、とても便利だと思います。同時実行性をチェックし、ランダムなリソースを以前に取得しなくても削除できないようにします。

4

1 に答える 1

7

ETagリクエストのおよびリクエストでHTTPヘッダーを使用しIf-MatchますDELETE

クライアントGETリソース:

GET /things/42

サーバーは次のように応答します。

200 OK
ETag: "foo-bar-baz"

クライアントはリソースを望んでいますDELETE

DELETE /things/42
If-Match: "foo-bar-baz"

ケース1:モノ42は変更されていないため、削除できます。サーバーは次のように応答します。

410 Gone

ケース2:事物42が変更され、と一致しませんETag: "foo-bar-baz"。削除されず、サーバーはように応答します。

409 Conflict

変異体:

Last-ModifiedおよびIf-Unmodified-Sinceの代わりに、またはに加えてETag、ヘッダーを使用することもできますIf-Match

ハイパーテキスト転送プロトコル(HTTP)ステータスコードレジストリを参照してください。

于 2012-11-06T13:06:22.630 に答える