ぶうううん's Cafe

どうにかこうにか。備忘録に近い。

パスパラメータ・クエリストリング・リクエストボディの使い分け

フロントからバックに値を渡すときの手段

 フロントエンドからバックエンドに値を渡すとき、以下のような方法が存在する。

  • パスパラメータ

  • クエリストリング

  • リクエストボディ

本記事ではこれら3つの説明とその使い分けについて記述する。


パスパラメータ

 パスパラメータでは次のようにURIのパス指定で値を渡す。{...}の部分がパスパラメータである。
https://hogehoge.com/category/{category_name}/...

次の例はcategory_nameとしてfoodsかdrinksを指定している。

https://hogehoge.com/category/foods/...
https://hogehoge.com/category/drinks/...

パスパラメータは表示のベースとなるWebページそのものを指定することに使われる。上記の例であれば、foodsカテゴリ・drinksカテゴリなど、商品検索のベースとなるカテゴリを指定できる。


クエリストリング

 クエリストリングではURIの後方で?name=といった形で指定する。次の例は検索ワードとしてラーメンを指定する例である。
https://hogehoge.com/category/foods/?word=ラーメン

 また、クエリストリングは次のように連続して記述ができ、複数渡すことができる。 https://hogehoge.com/category/foods/?word=ラーメン&order=desc

クエリストリングはWebページのオプションを指定する場合に使われる。上記の例であれば、foodsカテゴリのWebページにてラーメンを検索し、検索結果を降順で表示する。


リクエストボディ

 リクエストボディではHTTP Requestのボディ内でパラメータを指定する。指定する際にはJSON形式などを用いる。次の例は、商品レビューを追加する例である。

POST /hoge/ HTTP/1.1
Host: hogehoge.com
Connection: keep-alive
...

{
  "review_id": 12345,
  "title": "おすすめ"
  "detail: "この商品は..."
}

リクエストボディは複雑なパラメータを渡すことができる。そのため、新規に内容を作成する場合や、既存の内容を更新する場合などに使われる。


まとめ

  • フロントエンドからバックエンドに値を渡す代表的手法として、パスパラメータ・クエリストリング・リクエストボディが存在する。
  • 表示のベースとなるWebページを指定するにはパスパラメータを使用する。
  • Webページでオプションを指定する際にはクエリストリングを使用する。GETメソッドがこれにあたる。
  • 内容の作成や更新を行う際はリクエストボディを使用する。POST、PUT、PATCHメソッドがこれにあたる。

References