1. 導入
API開発において、複数のプロジェクトやコレクションをまたいで同じ情報を何度も入力するのは非常に手間であり、ミスの原因にもなります。特に認証トークンやベースURLのような「どこでも使う値」を各リクエストにハードコーディングしてしまうと、値が変わるたびに全ての箇所を修正しなければなりません。Postmanの「グローバル変数(Global Variables)」を活用すれば、一度設定するだけで全コレクションから値を参照でき、DRY(Don’t Repeat Yourself)な開発環境を構築できます。
2. 基礎知識
Postmanには「変数スコープ」という概念があります。スコープが小さい順に「ローカル変数」「データ変数」「環境変数」「グローバル変数」が存在します。今回解説するグローバル変数は最も広いスコープを持ち、Postman内のどのワークスペース、どのコレクションからでも呼び出すことが可能です。例えば、本番環境とテスト環境を切り替える際は「環境変数」が適していますが、開発者個人の認証トークンや、共通のAPIキーなど、環境を問わず常に同じ値を利用したい場合にグローバル変数が最適です。
3. 実装/解決策
グローバル変数の設定には、GUI上の「Globals」タブから直接入力する方法と、スクリプト(Testsタブ)からプログラム的に設定する方法があります。特にAPIから取得した認証トークンを自動的にグローバル変数へ保存する手法は非常に強力です。これにより、一度ログインリクエストを叩くだけで、後続のすべてのAPIテストで自動的にトークンが適用されるようになります。
4. サンプルプログラム
以下のコードは、ログインAPIのレスポンスからトークンを取得し、グローバル変数として保存する例です。これをログインリクエストの「Tests」タブに貼り付けてください。
// 1. APIから返ってきたレスポンスをJSONとしてパースする
const jsonData = pm.response.json();
// 2. レスポンスに含まれるトークンを変数に格納(APIの構造に合わせて変更してください)
const token = jsonData.access_token;
// 3. グローバル変数 ‘AUTH_TOKEN’ として保存する
pm.globals.set(“AUTH_TOKEN”, token);
// 4. コンソールに保存完了を通知する
console.log(“トークンをグローバル変数に保存しました: ” + token);
// ※以降のリクエストのヘッダーなどで {{AUTH_TOKEN}} と記述すれば値が自動挿入されます
5. 応用・注意点
グローバル変数は非常に便利ですが、使いすぎには注意が必要です。最も広いスコープを持つため、意図しないところで値が上書きされるとデバッグが困難になります。以下の点に留意してください。
・機密情報の取り扱い: グローバル変数はPostmanを同期している場合、クラウド上に保存されます。本番環境の極めて重要な機密キーを保存する場合は、Postmanの「Secret」設定を確認するか、環境変数と使い分けることを検討してください。
・命名規則の徹底: 多くのコレクションで共有されるため、変数名が重複しないよう、プロジェクト名や用途をプレフィックス(例: PROJECT_A_API_KEY)として付けると管理がしやすくなります。
・クリーンアップ: 不要になった変数は定期的に「Globals」管理画面から削除し、変数の一覧を整理しておくことで、チーム開発時の混乱を防げます。

コメント