APIリクエストを行う際、開発・テスト・本番など複数の環境を切り替える必要があることが多い。Apidogでは、画面右上から簡単に環境を選択でき、異なる環境へのリクエスト送信がスムーズに行える。Apidogの環境は、2つのコア要素で構成されている。1つ目は「Base URL」で、リクエストの送信先を管理する。2つ目は、リクエストやスクリプト内で参照できる1つ以上の「変数グループ」だ。環境を切り替えると、Base URLと環境変数の両方が、選択中の環境で定義された値に自動的に切り替わる。環境の作成#
2
左側リストの一番下にある「新しい環境を作成する」をクリック。
3
新しい環境名を入力し、Base URLや変数を追加する。
5
作成した環境を利用するには、画面右上の環境セレクターから選択する。これでその環境がアクティブとなり、全ての変数が環境で指定した値に設定される。
Apidogの環境は、Postmanの環境とは異なる。PostmanではBase URLごとに環境を分ける傾向があり、環境とBase URLの区別が曖昧になりがちだ。一方、Apidogの環境は、開発・テスト・本番といった実際の運用環境をそのまま反映している。Base URLごとに環境を分けるのではなく、1つの環境内に複数のサービス(例:ユーザーサービス、注文サービスなど)をまとめて管理できる。ユーザー環境や注文環境のように、サービス単位で環境を分割する必要はない。
Base URLについて#
Base URLは、Apidog環境の中核となる機能だ。Apidogでは、APIのパスはスラッシュ(/
)から始まり、Base URLは含まれない。APIリクエストを送信する際は、どのBase URLに送るかを明示的に指定する必要がある。そのため、環境ごとにBase URLを正しく設定することが重要となる。Base URLの標準的な書式は、プロトコルから始まり、末尾にスラッシュ(/)を付けない形となる。各Base URLは、特定のモジュールに紐付いている。通常、APIは所属するモジュールのBase URLを使ってリクエストを送信する。例えば、本番環境のデフォルトモジュールのBase URLがhttp://abc.com/v1
で、APIのパスが/pet
の場合、本番環境でリクエストを送信すると、実際のリクエスト先はAPIパスがhttp://
やhttps://
で始まる場合、Base URLは付加されない。ただし、この運用は推奨されない。
Apidogには、特別な環境変数「BASE_URL」が存在し、現在の環境の「Default Server」のBase URLを格納している。ただし、この変数の利用は推奨されない。カスタムスクリプトでは、pm.request.getBaseUrl()
を使って現在のAPIのBase URLを取得するのが推奨される。pm.environment.get('BASE_URL')
は、APIが「Default Server」を使っていない場合、正しいBase URLを取得できない可能性がある。ユーザーが手動で「BASE_URL」という環境変数を作成した場合、システムの「BASE_URL」よりも優先される。なお、スクリプトからBase URL自体を変更することはできない。スクリプト内でpm.environment.set('BASE_URL', 'My_url')
を実行すると、本当のbase URLが変わるのではなく、「BASE_URL」という名前の環境変数が新たに作成されるだけだ。
複数Base URLとモジュールの活用#
プロジェクト内で複数のBase URLを使い分ける場合は、Apidogのモジュールを活用するのが最適だ。ユーザー関連APIはhttps://user.example.com
を利用
注文関連APIはhttps://order.example.com
を利用
商品関連APIはhttps://product.example.com
を利用
1
APIフォルダツリーの最上部で、必要な数だけモジュールを追加する。
2
環境管理画面で、各モジュールごとに
Base URLを設定できる欄が表示されるので、実際のURLを入力し、「保存」をクリック。
3
モジュールの
ルートフォルダでは、そのモジュールのAPIがどの
Base URLを使うかを選択できる。
デフォルト設定:そのモジュールで最初に登録したBase URLを利用(標準かつ推奨設定)。
手動指定:同じモジュール内の他のBase URLを手動で選択可能。1つのモジュールで複数サービスに接続する場合に使えるが、現在はこの方法は推奨されていない。サービスごとにモジュールを分ける方が望ましい。
4
モジュールの
サブフォルダや個別の
APIページでも、使用するBase URLを指定できる。
親から継承:親フォルダの設定を引き継ぐ(デフォルト動作)。
手動指定:同じモジュール内の他のBase URLを選択可能。1つのモジュールで複数サービスに接続する場合に使えるが、現在はこの方法は推奨されていない。マイクロサービスの場合は、モジュールを分割して管理することを推奨。
5
正しい環境を選択したら、「送信」をクリックするだけでOK。個別のAPIリクエストでも自動テストでも、Apidogはモジュールと環境の設定に基づいて適切なBase URLを自動判定し、リクエストを送信する。
6
各環境には、プロジェクト内の全モジュールが含まれており、各モジュールごとにBase URLを個別に設定する必要がある。
これは、多くのチームで開発・テスト・本番ごとに異なるBase URLを利用しているためだ。右上の環境を切り替えるだけで、Apidogが自動的に環境ごとのBase URL設定に従って全APIリクエストを正しいサービスへルーティングするため、作業効率が大幅に向上する。新規プロジェクト作成時には、デフォルトモジュールが1つ自動生成される。まれに、モジュールに有効なBase URLが見つからない場合は、このデフォルトモジュールのBase URLが利用される。
環境変数の追加#
環境に変数を追加する際、その変数の初期値(共有)と現在値(ローカル)を指定できます。環境の切り替え#
Apidogはワークベンチの右上にある環境セレクタで現在の環境を表示します。リクエストの送信やスクリプトの実行時、Apidogは選択された環境のすべての変数の現在値を使用します。異なる環境に切り替えるには、環境セレクタから選択するだけです。Apidogでは、APIとリクエストは異なる 概念です。APIはAPI仕様を表し、ベースURLは含まれません。一方、リクエストは具体的なAPIリクエストで、ベースURLを含みます。そのため、Apidog環境で定義されたサービスは、APIにのみ適用され、リクエストには適用されません。リクエスト機能を使用する場合、Postmanと同様に{{Base_url}}
構文を使用して環境変数を利用できます。
環境の移行#
Apidogでは、変数の初期値はチーム内で同期されますが、現在値はローカルにのみ保存されます。つまり、別のコンピュータでApidogを使用する場合、以前使用した現在値にアクセスできません。そのため、Apidogは環境の移行機能を提供しています。環境内のサービスと変数をJSONファイルとしてエクスポートし、別のコンピュータにインポートできます。手順は以下の通りです:1
環境管理で、環境リスト横の「
...
」にカーソルを合わせ、エクスポートをクリックしてJSONファイルを取得します。
2
別のコンピュータで環境管理を開き、環境リスト横の「...
」にカーソルを合わせ、インポートをクリックします。JSONファイルを選択してインポートします。
3
Postmanからエクスポートした環境もインポートできます。
環境の可視性スコープ#
個人使用のみの変数を作成し、他のユーザーから見えないようにしたい場合があります。そのような場合は、「プライベート環境」を作成できます。環境の右上で、環境の可視性スコープを設定できます。デフォルトでは共有されていますが、作成した環境を自分にのみ表示されるように設定できま す。ただし、他のユーザーが作成した環境の可視性は変更できません。プライベート環境は他の環境と同じサービスリストを共有します。プライベート環境でのサービスの追加や削除は、すべての環境に同時に影響します。