[解決済み] HTTP DELETEでリソースを2回目に削除したときのステータスコード
2022-04-25 22:35:04
質問
HTTPのDELETE動詞がべき乗であることを考えると、私が次のリクエストを出したとき、2回目(あるいは3回目、4回目など)はどうなるでしょうか。
DELETE /person/123
初回は、リソースが削除され、204(成功、コンテンツなし)を返します。それ以降の呼び出しでも204を返すべきでしょうか、それとも404(見つかりませんでした)を返すべきでしょうか?
解決方法を教えてください。
ステートレス・システムにおけるHTTPリクエストは独立したものであるべきなので、あるリクエストの結果が前のリクエストに依存することはないはずです。 もし2人のユーザーが同じリソースに対して同時にDELETEを行った場合、何が起こるかを考えてみてください。 2番目のリクエストが404を得るのは理にかなっています。 一人のユーザーが2つのリクエストをした場合にも同じことが言えるはずです。
DELETEが2つの異なる応答を返すことは、あなたにとってべき等であるとは感じられないと推測します。 私は、べき等なリクエストとは、必ずしも同じレスポンスを返すとは限らず、同じ状態でシステムを去ることだと考えるのが便利だと思います。 つまり、既存のリソースをDELETEしても、存在しないリソースをDELETEしようとしても、サーバーのリソースの状態は同じなのです。
関連
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] updateとdeleteのHTTPステータスコード?
-
[解決済み] リソースが既に存在する場合の POST に対する HTTP レスポンスコード
-
[解決済み] 検証失敗または重複が無効な場合のREST HTTPステータスコード
-
[解決済み] ローカルファイルの読み込み時に "Cross origin requests are only supported for HTTP." というエラーが発生する。
-
[解決済み] HTTP DELETE リクエストにエンティティボディは許されますか?
-
[解決済み] cURLでPUTリクエストを行うには?
-
[解決済み】REST APIでのPUTメソッドとPATCHメソッドの使い分け 実生活でのシナリオ
-
[解決済み] HATEOAS(REST-architecture)の実例集 [終了しました]。
-
[解決済み] REST - ボディにIDを入れるかどうか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] HTTP GET(リクエストボディ付き
-
[解決済み] updateとdeleteのHTTPステータスコード?
-
[解決済み] SOAPとRESTの比較(相違点)
-
[解決済み] API のバージョン管理に関するベストプラクティス?[クローズド]
-
[解決済み] RESTアプリケーションはステートレスであることが前提である場合、セッションはどのように管理するのですか?
-
[解決済み] RESTのネストされたリソースのベストプラクティスは何ですか?
-
[解決済み] REST DELETEは本当にべき乗なのか?
-
[解決済み] REST API 認証
-
[解決済み] HTTP DELETEでリソースを2回目に削除したときのステータスコード
-
[解決済み] リソースとエンドポイントの違いは何ですか?