-
ID:e/po0E さんの質問

素朴な疑問なのですがREST APIの PUTとかDELETEって必要あるのですか?

例えば、ajaxでgetでサーバー側に削除したい投稿IDを送って、サーバー側でそのIDに紐づく投稿データを削除すれば良いだけではないですか?

DELETEとかPUTの必要性って何なのでしょう?

みんなの回答 2 件

ID:rptt7r さんの回答

冪等性があるかどうかの違いです。

ID:eSNREw さんの回答

AjaxでGETはありえないけど、個人的には冪等性も重要だけど規約的な概念として活用してるかな。
実装する側にはRESTに拘ることで明確なメリットがあると思えないかもしれないし、色々検証してみたけどコスト的なものも変わらなかったけど、アプリ用のAPI仕様を固める時は規約があり冪等性があると保守性が高くなるから一標準的なものを作る。何だかんだでメリットは大きい。

ID:vBj.8V

え、ajaxでgetで削除対象のid送ってサーバー側で削除はダメなのですか?postで送るならオッケーとかですか?

ID:eSNREw

敢えてGETというリクエストのどこから飛んできてもおかしくない方法で晒す必要はないかと思うし、XSRF用のトークンも送りにくい上、高負荷かけて落としたりセキュリティリスクがあるやり方で作る必要ないよね。
酷い場合botが回ってきて削除されたりとかありそう。
標準的なDELETEリクエストをそこまでして使いたくない理由がわからないけどPOSTで正しく処理すればオッケー。

ID:vBj.8V

postで対応すれば安全なのですね!GETでやってました。。。deleteってブラウザーが対応してないとか何とか聞いたもので。

ID:vBj.8V

postで正しく処理とあるのですが、何か特別なことをajaxでのpostの場合、しないといけないですか?普通のpostを処理するようなことをやっておけば大丈夫ですか?

ID:vBj.8V

xsrfをググってみたのですが、これはクロスオリジン制約があるから、外部からのリクエストは自動でブロックされることにはならないのですか?

ID:Q0g88O

じゃあ、外部公開apiはどうなるんだという話ではないか

ID:jl1nFe

あ、確かに。外部公開しないAPIを前提としていました!外部公開のAPIであればクロスオリジン制約無しですもんね。そういう場合はxsrf対策を行わないといけないのですね。

ID:b9Y/yA

ここで質問する前にまず、通信技術について何一つ学んでないような…。
HTTPについてやセキュリティについて一度やった方がいいよ。
情報漏えいしたら過失じゃ済まないんだから。

ID:wZMCUo

HTTPサーバーは勉強がてらに簡易的なものは作成したことはあります。セキュリティーは徳丸本は持ってるのですが、内容が難しくて積み読状態になっておりました。今読めば前よりは理解できるかな。。。

最終更新日:2016-01-29 (5,164 views)

関連するトピックス

ページ上部に戻る