GET,DELETEメソッドのリクエストボディとリクエストパラメータの使い方

GET,DELETEメソッドのリクエストボディとリクエストパラメータの使い方

REST APIは、URIとHTTPメソッドの組み合わせで成り立っています。

HTTPメソッド意味
GET取得
POST登録,その他
PUT更新
DELETE削除

GET,DELETEメソッドのリクエストパラメータ

GETメソッドの際にリクエストパラメータ(クエリパラメータ、GETパラメータとも言う)を使用しますが、DELETEでも使用することができます。

但し、クエリ=問い合わせという意味であること、GETパラメータという言葉からするとGETメソッドでリクエストパラメータ(?name=takahashi&age=20)を使用するのは好ましくないと思います。

削除でリクエストパラメータが必要な場合は、複雑な削除処理とみなしてPOSTに変える方がよい設計だと思います。

GET,DELETEメソッドのリクエストボディ

GET,DELETEメソッドで、実はリクエストボディにデータを設定することができます。

その場合、content-lengthの設定が必須になります。(本来はGET,DELETEでcontent-lengthの設定は任意です)

但し、このリクエストボディも多くのWebサーバではGET,DELETEメソッドでのリクエストボディは対応していないので、複雑な処理をする場合はGET,DELETEメソッドからPOSTメソッドに変更するというのが結論になるかと思います。

参考サイト

REST - Should you use a body for your HTTP DELETE request?
IrecentlyhadtomakeadeleteendpointandIwaswonderingifIshoulduseaURLpathparameterorprovideabody,hereiswhatIfiguredout.

コメント

タイトルとURLをコピーしました