URLパラメータ入門：種類と使い方、Google検索の裏技

## 初めに
URLパラメータは検索条件設定やデータ整理に重要です。[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)を利用すれば、APIのURLパラメータを自動抽出し管理でき、HTTPリクエストに最適です。 

## URLパラメータとは
URLパラメータとは、URL(Webアドレス)に追加されるキーと値のペアのことです。URLの後に、「?」の後ろの部分をURLパラメータと呼ばれることが多いのです。これらのパラメータは、Webアプリケーション側で取得して利用することができます。

URLパラメータは、基本的には一連の検索条件を設定して、特定の情報を検索するために利用されています。URLパラメータのキーと値を「=」でつないで指定します。パラメータを複数指定する場合は、パラメータのごとに「&」でつないで並べていきます。順不同でも動作します。

例えば、次のようなURLがあるとします：
```
https://example.com/search?keyword=cat&page=2
```
この例では、「?keyword=cat&page=2」がURLパラメータの部分になります。具体的なURLパラメータというと、次の2つのパラメータが指定されています。

- keyword: cat
- page: 2


このようにURLパラメータを使って検索条件を設定すると、「catというキーワードの検索結果の2番目のページ」の情報を取得できます。URLパラメータの順が変わっても同じ結果を取得できますので、「?keyword=cat&page=2」を「?page=2&keyword=cat」に変えても、取得する結果が変更しません。


## URLパラメータの種類

上記の例で示しているのは、URLパラメータの最も一般的な形式です。それを「クエリパラメータ」とも呼ばれています。実際には、他のURLパラメータの種類も存在しているので、この部分では、URLパラメータの種類を皆さんに紹介します。

URLパラメータには主に以下の種類があります。

### クエリパラメータ
クエリパラメータは最も一般的なURLパラメータです。?から始まり、&で区切る形式です。

例:
```
https://example.com/search?keyword=cat&sort=asc
```

### マトリックスパラメータ
ファイルパスのように/で区切られたセグメントの一部として埋め込む形式です。

例:
```
https://example.com/images;type=photo/cat.jpg
```

### アンカーパラメータ
ページ内リンクの先頭に付与するパラメータです。#から始まります。

例:
```
https://example.com/docs#page=5&highlight=api 
```

このほか、サーバ側でパラメータを解釈するカスタムスキーマも利用可能です。用途に応じてこれらのパラメータ形式を選択して利用します。クエリパラメータが最も一般的ですが、他の型も状況に応じて活用していきましょう。

## URLパラメータの利用シーン

URLパラメータは今さまざまな場面で利用されています。この部分では、URLパラメータの典型的な利用シーンを紹介していきたいと思います。

- **検索条件の指定**

```
https://example.com/search?keyword=cat&category=pet
```

ECサイトの商品検索機能で、検索キーワード「cat」とカテゴリ「pet」を指定しています。これにより、ペットと関連する商品の中から、「cat」という単語を含むものを検索結果として表示します。

- **ページング**

```
https://example.com/items?page=3
```

商品一覧表示で、ページ番号を指定することで任意のページを表示できます。ここでは3ページ目の商品一覧を表示しています。

- **ソート順の指定**

```
https://example.com/products?sort=price&order=desc
```

ECサイトの商品一覧で、商品を価格の高い順にソートする指定をしています。これにより高額商品から表示されるので、高級品志向のユーザーに適しています。

- **個別コンテンツの指定**

```
https://example.com/item?id=1234
```

データベース上の主キー的な商品IDを指定することで個別の商品ページにアクセスできます。商品詳細やレビューなどの情報を表示します。

この他にも、ダウンロードリンクの指定、表示言語の設定、アプリ内の特定画面の移動など、様々なパラメータの用途があります。そこで、用途に応じて適切なパラメータ名と値を設定することで、柔軟に利用シーンを拡張できます。アプリの要件に合わせて設計・活用していきましょう。

### データ追跡（トラッキング）でURLパラメータの活用

また、URLパラメータとデータトラッキングには密接な関連があります。データトラッキングとは、ユーザーの行動や属性をデータとして追跡・分析することです。このトラッキングにおいて、URLパラメータは非常に有効に利用されます。

具体的には以下のような使われ方をします。

- UTMパラメータによるトラッキング
- A/Bテストのグループ分け
- 広告クリックの追跡
- アフィリエイト連携の追跡など


これらのトラッキングでは、ユーザーを一意に特定するIDや、テストの種類を表すグループ名などをパラメータとして付加します。これにより、単なるページアクセスでは得られない、行動属性データを細かく追跡することが可能となります。

## Google検索URLパラメータ一覧
Googleなどの検索エンジンでは、必ずURLパラメータを活用して検索結果をカスタマイズしています。ここでは、Google検索で利用可能なURLパラメータ一覧を皆さんに紹介します。

| パラメータ名 | 説明 | 使用例 |
|:-----------|------------:|:------------:|
| q	    | 検索キーワードの指定	                | https://www.google.com/search?q=猫|
| as_q  | 関連する検索候補の自動表示	            | https://www.google.com/search?as_q=猫|
| as_epq| 関連候補を表示させずに検索	            | https://www.google.com/search?as_epq=猫|
| tbm   | 検索対象範囲の限定(画像・ニュースなど)  | https://www.google.com/search?tbm=isch&q=猫|
| lr	| 検索する言語の限定	                | https://www.google.com/search?lr=lang_ja&q=猫|
| num   | 表示する検索結果件数の指定	            | https://www.google.com/search?num=50&q=猫|

これらのURLパラメータを組み合わせることでGoogleの検索結果をカスタマイズできます。

## ApidogでURLパラメータを自由に設定して発信する

URLにURLパラメータを設定して、発信することが必要となる場合、[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)という優れていた[API管理ツール](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)は一番簡単な対策だと思います。APIのエンドポイントのURLを記入すると、クエリパラメータをQueryパラメータのところで直感的に記入することで、URLパラメータを何でも設定して発信することができます。また、自分でAPIを開発する場合は、APIの設計だけではなく、APIの仕様書生成、テスト自動化、データモックなど、様々な機能もできます。

![get-request-apidog-1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3877124/fb1e4efd-5440-9095-dfe6-a8208116ff62.png)

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

## まとめ

URLパラメータは、URLの後ろに付加するキーと値の情報で、Webアプリケーションの動作を指定するのに用いられます。検索条件の設定やページング、データのソート順指定など、柔軟な制御に利用できます。Google検索でも多数のパラメータが用意されており、検索結果をカスタマイズすることが可能です。

[Apidog](http://www.apidog.com/jp/?utm_source=opr&utm_medium=a2takuya)を使うと、APIのエンドポイントを指定するだけで、URLに含まれるパラメータが自動的に抽出され、修正・追加してリクエスト送信できます。取得結果も確認できるので、HTTPリクエストの発行に大変有用なツールです。

**最後まで読んでくださり、ありがとうございました！
この記事を読んで少しでも理解を深めていただければ幸いです！**