1. ホーム
  2. rest

[解決済み] アイテムを大量に削除するためのRestfulな方法

2022-10-27 10:36:37

質問

RESTに関するwikiの記事 を使用する場合は http://example.com/resources DELETE を使用すると、コレクション全体を削除することを意味します。

もしあなたが http://example.com/resources/7HOU57Y DELETEは、その要素を削除していることを意味します。

私はWEBサイトを作っているのですが、WEBサービスではないことに注意してください。

私は、リスト上の各項目に対して1つのチェックボックスがあるリストを持っています。削除する項目を複数選択したら、DELETE SELECTIONというボタンを押せるようにします。ユーザーがボタンを押すと、jsダイアログボックスがポップアップし、削除を確認するよう求めます。ユーザーが確認すると、すべての項目が削除されます。

複数の項目を削除する場合、どのように対応すればよいでしょうか。

注:現在、ウェブページでDELETEするために、私がしていることは、POSTをアクションとしてFORMタグを使用し、DELETEという値を持つ_methodを含んでいることです。 これは、ウェブページのRESTfulな削除を行う方法について、SOで他の人が示したものです。 .

どのように解決するのですか?

私が思うに rojocaさんの回答 が今のところベストです。少し変わった方法としては、同じページでjavascriptによる確認を行わず、代わりに選択項目を作成し、そのページにリダイレクトして、そのページで確認メッセージを表示させるという方法があります。言い換えれば

からです。

http://example.com/resources/

をする

にIDを選択してPOSTする。

http://example.com/resources/selections

で、成功すれば、次のように応答するはずです。

HTTP/1.1 201 が作成され、Location ヘッダーは次のようになります。

http://example.com/resources/selections/DF4XY7

このページには(javascriptの)確認ボックスが表示され、確認すると次のようなリクエストが行われます。

削除 http://example.com/resources/selections/DF4XY7

で、成功すれば、次のように応答するはずです。 HTTP/1.1 200 Ok (または削除が成功した場合に適切なもの)