2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

リクエストパラメーターとその型について

Last updated at Posted at 2020-08-14

最近のAPIの開発に着手し始めて、クライアントから送られてくるリクエストパラメーターの型について意識し始めた。クエリストリングやボディーのフォーマットに応じてどのような型がくるのか整理したく記録に残す。

クエリストリングで送られてくる場合

localhost:3000/shops?pageno=1&pagesize=60

キーに値が指定していればその値の型は文字列となる。

*ちなみにkey=valueの記述がない場合はnullとなり、key=のみ記述した場合はその値は空文字列となる。
*(Railsの場合)paramsで文字列として値がセットされるので、API側で文字列以外の値を使いたいときはその型へキャストする必要がある。

ボディーで送られてくる場合

ボディーのフォーマットがContent-Type: application/x-www-form-urlencodedの場合

WEBブラウザのフォームのリクエストでよく使われる。
キーに指定した値はRFC1866が定める変換フォーマットにしたがって文字列に変換される。

*(Railsの場合)paramsで文字列として値がセットされるので、API側で文字列以外の値を使いたいときはその型へキャストする必要がある。

ボディーのフォーマットがContent-Type: application/jsonの場合

アプリのリクエストやAjaxのリクエストでよく使われる。
jsonは型を持つことができるので、クライアント指定した型を持った状態でリクエストを投げることができる。

Chromeを使った確認方法

「右クリック>検証>Networkタブ」でリクエストとレスポンスの情報を確認することができる。

以下は、Content-Type: application/x-www-form-urlencodedでリクエストを投げた時の例。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?