最近の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
でリクエストを投げた時の例。

