Apidogでのリクエストパラメータ取得テクニック:pm.request活用法

この記事では、Apidogでpm.requestオブジェクトとそのメソッドを活用し、URL、パスパラメータ、クエリパラメータ、ボディパラメータ、ヘッダーパラメータを含むリクエストパラメータを簡単に抽出および操作する方法を詳しく解説しました。

中村 拓也

中村 拓也

22 7月 2025

Apidogでのリクエストパラメータ取得テクニック:pm.request活用法

Apidogを使用してAPIのテストを行う場合、現在のテストAPIのリクエストパラメータを他の目的のために抽出する必要がある場合があります。例えば、次のリクエストボディを持つeコマースプラットフォームの注文作成APIを考えてみましょう:

{"id": 12345,"products": [
    {"id": 1, "quantity": 2},
    {"id": 3, "quantity": 1}
  ],"shippingAddress": "xx 県 xx 市 xx 区","paymentMethod": "credit_card"
}

このシナリオでは、次のことを行いたいかもしれません:

  1. リクエストパラメータを抽出して暗号化する:プライバシーを保護するために、送信前にshippingAddressパラメータの値を暗号化する必要があるかもしれません。
  2. リクエストパラメータを変数として保存する:idパラメータを「一時変数」として設定し、その後のAPIテスト(例えば、注文状況の確認)で使用する必要があるかもしれません。
  3. リクエストパラメータを検証する:リクエストを送信する前に、paymentMethodパラメータが有効な値かどうかを確認する必要があるかもしれません。

これを処理するには、pm.requestメソッドを使用してAPIからリクエストパラメータを抽出できます。さまざまなパラメータ情報を表示するカスタムスクリプトを作成し、pm.requestをコンソールに印刷できます。例えば:

// 現在のAPIのリクエストパラメータ情報console.log(pm.request);
pm.request

このメソッドのrequestはAPIのリクエストオブジェクトを指します。「プレリクエスト」スクリプトでは「保留中のリクエスト」を表し、「ポストリクエスト」スクリプトでは「送信されたリクエスト」を指します。

要件に基づいて、プレリクエストまたはポストリクエストスクリプトで現在のリクエストパラメータを取得するかを決定できます:

「プレリクエスト」スクリプトで行った変更のみが有効であることに注意してください。「ポストリクエスト」スクリプトで行った変更は効果を持ちません。

他のAPIからリクエストパラメータを取得するには、環境変数にパラメータを保存してから読み込むか、「テスト」機能を使用できます。「動的値」を使うことで、前のステップ(つまり、他のAPI)からリクエストパラメータやレスポンスデータを直接読み取ることができます。

Extract Scope
ボタン

リクエストパラメータを抽出するステップバイステップガイド

プレリクエストURLを取得する

プレリクエストURLは「環境管理」で設定されたサービスアドレスです。

プレリクエストURLを取得する

現在のAPIのプレリクエストURLを取得するには、pm.request.getBaseUrl()またはpm.request.baseUrlメソッドを使用できます。例えば:

// プレリクエストURLを取得する
let preUrl = pm.request.getBaseUrl();
console.log(preUrl);

// あるいは
let baseUrl = pm.request.baseUrl;
console.log(baseUrl);
pm.request.getBaseUrl()

複数のプレリクエストURLが設定されている場合、スクリプトは指定されたサービスに対応するURLを取得します。これらの設定は「編集→サービス(プレリクエストURL)」を通じて確認および管理できます。

サービス設定

パスパラメータを取得する

パスパラメータは、リソースパスを指定するために使用されるURLの一部で、特定のリソースやコレクションを識別する際に使用されます。Apidogでは、パスパラメータは波かっこ{}を使用して表現され、URLパスに直接含まれます。例えば:

https://Apidogmock.com/xxx/xxx/store/products/{id}

この例では、{id}は動的に置き換えることができるパスパラメータです。pm.request.url.pathを使用してパスパラメータを抽出でき、これによりすべてのパス名を含む配列が返され、配列インデックスを使用して正確にアクセスできます:

// pm.request.url.pathからパスパラメータを取得する
let getPathUrl = pm.request.url.path;

// データをコンソールに印刷console.log(getPathUrl);
console.log(getPathUrl[4]);
パスパラメータの置き換え

クエリパラメータを取得する

クエリパラメータは、通常、疑問符?の後に続く追加情報で、キーと値のペアとしてフォーマットされ、&で区切られます。例えば:

https://Apidogmock.com/xxx/xxx/store/products/{id}?cart_id=42&region_id=43

クエリパラメータを抽出するには、pm.request.url.queryを使用します。これによりすべてのキーペアが取得できます。その後、get()メソッドを使用して、特定のパラメータを取得できます。以下は、cart_idパラメータを抽出する方法です:

// pm.request.url.queryからクエリパラメータを取得する
let getQueryUrl = pm.request.url.query;

// データをコンソールに印刷console.log(getQueryUrl);
console.log(getQueryUrl.get("cart_id"));
クエリパラメータを取得する

完全なURLを取得する

リクエストの完全なURLを取得するには、プレリクエストURL、パスパラメータ、およびクエリパラメータを含む、pm.request.url.toString()メソッドを使用します:

// 完全なURLをコンソールに印刷console.log(pm.request.url.toString());

このメソッドは、すべてのURL情報を含む文字列を返し、パスパラメータの動的置き換えやすべてのクエリパラメータを含みます。

完全なURLを取得する

ボディパラメータを取得する

// ボディタイプがform-dataの場合
let formData = pm.request.body.formdata;

// データをコンソールに印刷console.log(formData);
console.log(formData.get("email"));
console.log(formData.get("password"));
form-data
// ボディタイプがx-www-form-urlencodedの場合
let urlencoded = pm.request.body.urlencoded;

// データをコンソールに印刷console.log(urlencoded);
console.log(urlencoded.get("email"));
console.log(urlencoded.get("password"));
x-www-form-urlencoded形式の場合
// raw、JSON、またはXML形式の場合
let formData = pm.request.body.raw;
// JSONオブジェクトに解析する
let jsonData = JSON.parse(formData);
// データをコンソールに印刷
console.log(jsonData);
console.log(jsonData.email);
console.log(jsonData.password);
raw、JSON、またはXML形式の場合

ヘッダーパラメータを取得する

リクエストのヘッダーパラメータを取得するには、pm.request.headersを使用します。これにより、すべてのリクエストヘッダー情報を含む配列オブジェクトが返されます。特定のパラメータ値を正確に見つけて抽出するには、get()関数を使用します:

// リクエストヘッダーパラメータを取得する
let headers = pm.request.headers;

// データをコンソールに印刷console.log(headers);
console.log(headers.get("Accept"));

リクエストパラメータ取得のFAQ

参照された変数が置き換えられない理由は何ですか?

APIリクエストパラメータが環境変数の値を参照しているが、コンソールの特定の値に置き換えられていない場合は、「変数の置き換え&親を継承」をプレリクエストまたはポストリクエストセクションのスクリプトの最初に移動してください。これにより、すべての参照された変数(動的値を含む)が実際の内容に置き換えられます。

付録

メソッドと説明

メソッド 説明 目的
pm.request 現在のインターフェースのリクエストパラメータ情報を取得する リクエストオブジェクトにアクセスする
pm.request.getBaseUrl() プレリクエストURLを取得する サービスアドレスを取得する
pm.request.baseUrl プレリクエストURLを取得する(代替メソッド) サービスアドレスを取得する
pm.request.url.path パスパラメータを取得する URLパスパラメータを抽出する
pm.request.url.query クエリパラメータを取得する URLクエリパラメータを抽出する
pm.request.url.toString() 完全なURLを取得する 完全なURL内のすべてのパラメータを取得する
pm.request.body.formdata form-dataボディパラメータを取得する フォームデータを抽出する
pm.request.body.urlencoded x-www-form-urlencodedボディパラメータを取得する URLエンコードされたフォームデータを抽出する
pm.request.body.raw 生、JSON、またはXMLボディパラメータを取得する 生のリクエストボディコンテンツを抽出する
pm.request.headers ヘッダーパラメータを取得する リクエストヘッダー情報を抽出する
JSON.parse() JSON文字列を解析する JSON文字列をJavaScriptオブジェクトに変換する

結論

この記事では、プレリクエストURL、パスパラメータ、クエリパラメータ、ボディパラメータ、およびヘッダーパラメータを含む、Apidogでのリクエストパラメータの抽出方法を説明しました。pm.requestオブジェクトとその関連メソッドを使用することで、さまざまなリクエストデータを簡単に取得および操作できます。

ボタン

Explore more

Grok 4 API完全ガイド:接続からAIアプリ開発まで

Grok 4 API完全ガイド:接続からAIアプリ開発まで

本記事ではGrok 4 APIへのアクセス方法と統合手順を解説します。認証、ベストプラクティス、パフォーマンス最適化、Apidogなどのツール活用法も紹介しています。

10 7月 2025

アンチボット突破!AIでウェブAPIを簡単に見つける方法

アンチボット突破!AIでウェブAPIを簡単に見つける方法

本記事では、AIツール「Hyperbrowser」を使って、効率的かつ簡単にウェブサイトのAPIを発見する方法を解説しています。

2 7月 2025

今すぐ使えるGemini CLI:Apidog連携でAI開発を爆速に

今すぐ使えるGemini CLI:Apidog連携でAI開発を爆速に

本記事では、Google Gemini CLI を使って無料で Gemini 2.5 Pro にアクセスし、1日最大1000リクエストを活用する方法、さらに Apidog MCP サーバーとの連携による AI開発自動化の可能性を紹介します。

26 6月 2025

ApidogでAPIデザイン中心のアプローチを取る

APIの開発と利用をよりシンプルなことにする方法を発見できる