パスパラメータとクエリパラメータの違いとは?初心者向けにURLの仕組み・使い分け・APIでの利用例をわかりやすく解説
結論
パスパラメータとクエリパラメータは、どちらもURLでデータを渡す方法ですが、役割が異なります。パスパラメータは「どのデータを操作するか」を指定し、クエリパラメータは「どのような条件で取得するか」を指定するのが基本です。
IT業務では、REST APIの開発や運用、Webシステムの障害調査、クラウドサービスとの連携などで頻繁に登場するため、違いを理解しておくことが重要です。
- パスパラメータとは
- クエリパラメータとは
- パスパラメータとクエリパラメータの違い
- イメージで理解する
- どんな場面で使われるのか
- なぜ使い分けるのか
- 初心者が混乱しやすいポイント
- 実際のIT現場での利用例
- 筆者が現場で経験した失敗談
- 業務でよくあるトラブル
- 原因の切り分け
- 確認する順番
- GUIで確認する方法
- コマンドプロンプトで確認する方法
- PowerShellで確認する方法
- ログの確認方法
- イベントビューアーの確認方法
- 確認結果の見方
- 影響範囲を考える
- ユーザー側・サーバー側の切り分け
- 初心者がやりがちなミス
- 業務で上司へ報告するポイント
- エスカレーションするタイミング
- パスパラメータとクエリパラメータの使い分け
- 関連するIT用語
- よくある質問(FAQ)
- まとめ
パスパラメータとは
パスパラメータとは、URLのパス(Path)に含まれる値です。
主に、特定のリソース(対象データ)を指定するために使用されます。
例
この場合、「100」がパスパラメータです。
「ユーザーIDが100の情報を取得する」という意味になります。
クエリパラメータとは
クエリパラメータとは、URLの「?」以降に付加される情報です。
主に、検索条件や並び順、表示件数などの条件を指定するために使用されます。
例
この場合、以下がクエリパラメータです。
- department=Sales
- page=2
パスパラメータとクエリパラメータの違い
| 項目 | パスパラメータ | クエリパラメータ |
|---|---|---|
| 役割 | 対象データを指定する | 取得条件を指定する |
| URL内の位置 | パスの一部 | 「?」以降 |
| 必須になること | 多い | 任意の場合が多い |
| 利用例 | ユーザーID、商品ID | 検索、並び替え、ページ番号 |
イメージで理解する
図書館で本を探す場面に例えると分かりやすくなります。
| 例え | 意味 |
|---|---|
| パスパラメータ | 本の管理番号を指定する |
| クエリパラメータ | 著者名や出版年で検索する |
「どの本か」を指定するのがパスパラメータ、「どんな条件で探すか」を指定するのがクエリパラメータです。
どんな場面で使われるのか
パスパラメータを使う場面
- ユーザー情報の取得
- 商品情報の表示
- 社員情報の更新
- ファイルのダウンロード
例
/users/100
ユーザーID「100」の情報を取得します。
クエリパラメータを使う場面
- 検索条件の指定
- 並び順の指定
- ページ番号の指定
- 表示件数の指定
例
/users?department=Sales&sort=name
営業部のユーザーを名前順で表示します。
なぜ使い分けるのか
URLの意味を分かりやすくし、REST APIの設計ルールに沿った構成にするためです。
「対象データ」と「検索条件」を分けることで、APIの仕様書やソースコードも理解しやすくなります。
初心者が混乱しやすいポイント
どちらもデータを渡すため区別しにくい
どちらもサーバーへ情報を渡しますが、用途が異なります。
「対象を指定するならパス」「条件を指定するならクエリ」と覚えると理解しやすくなります。
クエリパラメータは複数指定できる
「&」で区切ることで複数の条件を指定できます。
例
?department=Sales&page=2&sort=name
実際のIT現場での利用例
- REST API
- Microsoft Graph API
- クラウドサービスのAPI
- 社内Webシステム
- ECサイトの商品検索
- 管理画面の一覧表示
REST APIでは、「リソースはパスパラメータ」「検索条件はクエリパラメータ」という設計が一般的です。
筆者が現場で経験した失敗談
APIテストで、検索条件をパスパラメータへ含めてしまい、404 Not Foundエラーになったことがありました。
仕様書を確認すると、検索条件はクエリパラメータで渡す設計になっており、URLを修正すると正常に動作しました。
APIでは、パスとクエリの役割を理解することが重要です。
業務でよくあるトラブル
- パスパラメータの指定ミス
- クエリパラメータの入力漏れ
- パラメータ名のスペルミス
- URLエンコード不足
- 404 Not Foundエラー
- 400 Bad Requestエラー
原因の切り分け
| 確認項目 | 内容 |
|---|---|
| URL | 正しい形式か |
| パス | 対象リソースが正しいか |
| クエリ | 条件が正しく指定されているか |
| HTTPメソッド | GETやPOSTが正しいか |
| API仕様 | 設計書どおりか |
確認する順番
- URL全体を確認する
- パスパラメータを確認する
- クエリパラメータを確認する
- HTTPメソッドを確認する
- HTTPステータスコードを確認する
- API仕様書を確認する
GUIで確認する方法
Google Chrome
- F12キーを押す
- Networkタブを開く
- 対象通信を選択する
- Headersを開く
- Request URLを確認する
URL全体を確認することで、パスパラメータとクエリパラメータの両方を確認できます。
コマンドプロンプトで確認する方法
curlコマンドを利用するとAPIの動作を確認できます。
パスパラメータの例
curl https://example.com/users/100
クエリパラメータの例
curl “https://example.com/users?department=Sales&page=2”
PowerShellで確認する方法
PowerShellではInvoke-RestMethodやInvoke-WebRequestを利用して、パスパラメータやクエリパラメータを含むURLへアクセスできます。
APIのテストや自動化スクリプトで広く利用されています。
ログの確認方法
- IISアクセスログ
- Apacheアクセスログ
- Nginxアクセスログ
- APIログ
- アプリケーションログ
リクエストURLやHTTPステータスコードを確認することで、どのパラメータでアクセスされたか調査できます。
イベントビューアーの確認方法
パスパラメータやクエリパラメータ自体はイベントビューアーへ記録されません。
WebサービスやAPIでエラーが発生した場合は、イベントビューアーやアプリケーションログを確認します。
- Windows+Rキーを押す
- eventvwr.msc と入力する
- Windowsログ
- アプリケーション
- エラーや警告を確認する
確認結果の見方
| HTTPステータスコード | 意味 |
|---|---|
| 200 OK | 正常 |
| 400 Bad Request | パラメータの誤り |
| 401 Unauthorized | 認証エラー |
| 403 Forbidden | 権限不足 |
| 404 Not Found | パスや対象データが存在しない |
| 500 Internal Server Error | サーバー内部エラー |
影響範囲を考える
- 特定のAPIだけか
- 検索機能全体か
- ユーザー全員へ影響するか
- サーバー側の問題か
- API仕様の変更が影響しているか
ユーザー側・サーバー側の切り分け
| 確認対象 | 例 |
|---|---|
| ユーザー側 | URL、入力内容、HTTPメソッド |
| サーバー側 | API、Webサーバー、アプリケーション |
| ネットワーク | DNS、FW、プロキシ |
| 認証 | アクセストークン、ログイン状態 |
初心者がやりがちなミス
- 対象IDをクエリパラメータで渡す
- 検索条件をパスへ含める
- 「?」と「&」を間違える
- URLエンコードを忘れる
- API仕様書を確認しない
業務で上司へ報告するポイント
- 対象APIのURL
- パスパラメータの内容
- クエリパラメータの内容
- HTTPメソッド
- HTTPステータスコード
- 発生日時
- 影響範囲
- 実施した確認内容
エスカレーションするタイミング
- API仕様どおりでもエラーが発生する
- 404や500エラーが継続する
- 検索機能全体が利用できない
- APIサーバーの障害が疑われる
- 本番環境だけで発生している
パスパラメータとクエリパラメータの使い分け
| 用途 | 使用するパラメータ | 例 |
|---|---|---|
| 特定ユーザーを取得する | パスパラメータ | /users/100 |
| 営業部のユーザーを検索する | クエリパラメータ | /users?department=Sales |
| 商品一覧を価格順に表示する | クエリパラメータ | /products?sort=price |
| 商品ID100を取得する | パスパラメータ | /products/100 |
関連するIT用語
- REST API
- HTTP
- HTTPS
- URL
- URI
- GET
- POST
- JSON
- HTTPステータスコード
よくある質問(FAQ)
パスパラメータとクエリパラメータはどちらも必須ですか?
パスパラメータは必須になることが多く、クエリパラメータは任意の場合が多いです。ただし、APIの仕様によって異なります。
検索機能ではどちらを使いますか?
検索条件や並び順、ページ番号などは、一般的にクエリパラメータを使用します。
ユーザーIDはどちらで指定しますか?
REST APIでは、特定のユーザーを指定する場合はパスパラメータを使用することが一般的です。
クエリパラメータは複数指定できますか?
はい。「&」で区切ることで複数のクエリパラメータを指定できます。例えば「?department=Sales&page=2&sort=name」のように記述します。
まとめ
パスパラメータとクエリパラメータはどちらもURLでデータを渡す仕組みですが、パスパラメータは「どのデータを操作するか」、クエリパラメータは「どのような条件で取得するか」を指定するという違いがあります。
REST APIでは、対象となるリソースはパスパラメータ、検索条件や並び替え、ページ番号などはクエリパラメータで指定する設計が一般的です。この使い分けを理解しておくことで、API仕様書を読みやすくなり、障害調査やAPIテストもスムーズに進められるようになります。
