クエリストリング(query string)とは、URLの末尾に付加される文字列のこととして、クエリパラメータで内容を記述するために利用されています。本文では、クエリストリングの基本情報を完全に解説した上、分かりやすいクエリストリングの使い方を一緒に皆さんに紹介したいと思います。
また、Apidogという直感的で使いやすいAPI管理ツールは、クエリストリングを利用して、クエリパラメータをサーバーに簡単に送信する方法を紹介します。
クエリストリング(文字列)とは
クエリストリング(query string)とは、URLの末尾に付加される文字列のことで、クエリパラメータを記述するために利用されています。クエリストリングは、GETリクエスト時に特によく使われる機能です。クエリストリングは、常に?
から始まり、クエリパラメータをキーと値の組み合わせで並べたものです。
例えば:
https://example.com/search?keyword=cat&sort=popular
このURLのクエリストリングは、?keyword=cat&sort=popular
の部分です。
クエリストリングとクエリパラメータとの関係
クエリストリングとクエリパラメータは密接な関係があります。一般的には、APIを呼び出す時、クエリパラメータ経由でデータをサーバーに渡すために、String形式のみがサポートされています。これもクエリストリング(Query String)という名前が普及してきた原因です。両者の関係といえば、クエリストリングは、複数のクエリパラメータから構成されているという理解で良いのです。
- クエリストリングは、URLの?以降に指定する文字列のこと
- クエリパラメータは、そのクエリストリングを構成する要素の1つ
例えば:
http://example.com/search?keyword=cat&sort=popular
この場合、
- クエリストリングは
?keyword=cat&sort=popular
- クエリパラメータは
keyword=cat
とsort=popular
の2つ
このように、各クエリパラメータはキーと値から構成され、キー=値
の形で指定します。複数のパラメータは&
でつなげて並べます。その一方、クエリストリング全体がパラメータの集合となっています。
具体例付き:クエリストリングの書き方
上記のように、クエリストリングか、クエリパラメータの書き方は非常に簡単です。
- URLの末尾に?を付ける
- ?の後ろにクエリパラメータを追加していく
- パラメータは「キー=値」の形で指定
- 複数のパラメータは&で繋げる
- 末尾の?は省略可能
クエリ文字列の具体例
例えば、次は、3つのAPIエンドポイントを皆さんに紹介します。
http://example.com/search
http://example.com/search?keyword=cat
http://example.com/search?keyword=cat&sort=popular
この3つのエンドポイントの中で、クエリパラメータの状況は次のようになります:
- 1つ目はクエリパラメータなし
- 2つ目は1つのクエリパラメータ
- 3つ目は2つのクエリパラメータ
パラメータの値にスペース特殊文字が含まれる場合、スペースは %20
にエンコードされる必要があります。例えば、key=cat photo.jpg
をkey=cat%20photo.jpg
として記述する必要があります。
クエリストリングの利用シーン:GETとPOST
クエリストリングは、クエリパラメータの記述形式として、主にGETで利用されています。GETでクエリストリングを利用してクエリパラメータを渡したい場合は、直接にURLの末尾に?クエリストリング
を追加すればOKです。
また、クエリストリングは、GETリクエスト以外、POSTリクエストでも利用される場合がたまにあります。POSTの場合のクエリストリングの使い方は以下のようになります。
- リクエストボディにx-www-form-urlencoded形式で、パラメータを設定するのが基本
- 追加のパラメータがある時にクエリストリングを使用可能
例えば、次のように、POSTリクエストにもクエリストリングが追加できます。
POST /search HTTP/1.1
Content-Type: application/x-www-form-urlencoded
keyword=cat&sort=popular
Apidogでクエリストリングを利用する
Apidogは、非常に使いやすいAPI管理ツールとして、GETリクエストかPOSTリクエストの送信時に、クエリストリングを利用したい場合でも簡単に実現することが可能です。また、Apidogは、URLにつけているクエリパラメータを自動的にその直感的なUIに抽出され、APIの初心者でも操作できます。
Apidogでクエリストリング付きでGET
ApidogでGETリクエストを送信するには、APIのエンドポイントを記入して「送信」ボタンをクリックするだけで、リクエストを送信して、レスポンスを取得できます。

また、GETリクエストを送信する場合、URLを記入するだけで、URLに含まれるクエリパラメータとパスパラメータが自動的に抽出され、下のパラメータ欄に記入されるので、非常に便利です。例えば:
GET https://example.com/search?keyword=cat&sort=asc&num=30
をURLボックスに記入すると、keyword、sort、numといった3つのクエリパラメータは自動的に下記のQueryパラメータ欄に抽出できます。そして、このリクエストをAPIとして保存することもでき、今後このリクエストを再利用する必要があっても、直接に利用可能です。
Apidogでクエリストリング付きでPOST
また、POSTリクエストを送信する場合、Apidogはクエリストリングをボディに追加することを完璧にサポートできます。

ApidogでPOSTリクエスト画面で、「Body」タブに切り替え、その下にデータフォーマットを「x-www-form-urlencoded」に指定して、パラメータ名とパラメータ値を記入します。ここに記入されたパラメータ名とパラメータ値は、リクエストを実際に送信した時に、パラメータ名=パラメータ値
というKeyと値のペア形式に置き換えられます。
まとめ
クエリストリングは、URLの末尾に付加する文字列で、クエリパラメータを指定するために使用します。クエリストリングは「?」から始まり、「キー=値」の形式でパラメータを並べていきます。クエリストリングは主にGETリクエストで利用されますが、POSTなどでも使用できます。
Apidogを使えば、クエリストリングを簡単に作成し、パラメータを直感的に設定できます。クエリストリングはAPIを呼び出す時にパラメータを渡す簡易な方法です。クライアントとサーバーのやり取りに活用していきましょう。