環境と変数
リクエストで変数を使い、サーバごとの値のセットを環境に持たせ、切り替え、どの値が優先されるかを確認する方法を説明します。
変数は、ベースアドレス、ユーザー名、トークンなど、多くの場所で使う値につける名前です。リクエストの任意のフィールドに{{name}}と書くと、Echolotは送信時に値を入れます。環境は、Local、Staging、Productionなど、送信先ごとの値のセットです。環境を切り替えると、すべてのリクエストがそちらに向かいます。
変数を使う
アドレス、ヘッダー、パラメータ、ボディ、認証のフィールド、設定に{{name}}と入力します。Alpenglowでは、すべてのアドレスが{{baseURL}}で始まります。
{{baseURL}}/products/{{productId}}フィールドに{{と入力すると、そのリクエストで使える変数の一覧が表示されます。{{$uuid}}のような動的な値、日付、ハッシュ、ほかのリクエストのレスポンスの値も含まれます。変数が別の変数を含むこともできます。たとえばbaseURLをhttps://{{host}}/v1にできます。
リクエストが解決できない名前はフィールド内で目印が付き、Echolotが理由を説明します。たとえば{{productId}} is not definedやthe secret {{token}} has no value on this Macです。
変数を定義する場所
変数は、広いほうから近いほうへ、5つのレベルにあります。
| レベル | 編集する場所 | 保存先 |
|---|---|---|
| グローバル | 環境 › グローバル | このMacのみ(すべてのワークスペース共通)。 |
| ワークスペース | 環境 › ワークスペース、またはワークスペース設定… › 変数 | workspace.toml |
| 環境 | 環境 › 該当の環境 | environments/<name>.toml |
| フォルダ | フォルダ設定… › 変数 | フォルダの_folder.toml |
| リクエスト | リクエストの変数タブ | リクエストのファイル |
シークレットでない値は、入力するとそれらのファイルに書き込まれます。シークレットの値は決して書き込まれません。シークレットを参照してください。
どの値が優先されるか
同じ名前が複数のレベルで定義されている場合は、いちばん近いものが優先されます。
- リクエスト自身の変数。
- そのフォルダの変数、次に上位のフォルダの変数(近い順に外側へ)。
- アクティブな環境の変数。
- ワークスペースの変数。
- グローバル。
つまり、ワークスペースがデフォルトを持ち、環境がそのサーバで異なる部分を変え、フォルダやリクエストが両方を上書きできます。オフにした変数(チェックボックスを外したもの)はスキップされ、次のレベルの値が使われます。
Alpenglowでは、ワークスペースのbaseURLはhttps://demo.echolot.dev/v1です。Stagingをアクティブにすると、Stagingも定義しているためhttps://staging.alpenglow.example/v1になります。環境なしのときは、リクエストはワークスペースの値を使い、デモAPIに送信されます。
スクリプトが実行中に設定した値(pm.environment.setなど)は、それを実行したウインドウまたはコマンドの間だけ続き、ファイルには書き込まれません。スクリプトとテストを参照してください。レスポンスのキャプチャは異なり、取得した値をワークスペースまたは環境の変数に保存します。
環境を選ぶ
環境メニューは、すべてのページのページヘッダーにあります。アクティブな環境が点とともに表示されます。環境は緑、保護された環境は赤、環境なしはグレーです。
クリックして環境を選びます。ワークスペースの値だけを使うには環境なしを選びます。環境を管理…は環境ページを開きます。

この選択は、ウインドウとこのMacに属します。ワークスペースには書き込まれないので、環境を選んでもファイルは変わらず、チームメンバーはそれぞれ自分の環境を選べます。Echolotはワークスペースごとにそれを記憶し、次に開いたときにもう一度選択します。
ランナー、フロー、クイック送信も、ウインドウのアクティブな環境を使います。コマンドラインでは、--envで環境を選びます。
echolot run Alpenglow.echolot --env staging--envには、環境のファイル名(.tomlを除いたもの)か、環境の名前を指定します。
環境ページ
表示 › 環境(⌥⌘E)、または環境メニューの環境を管理…で開きます。左側には次のものがあります。
- デフォルト: グローバルとワークスペース。
- 環境: 1つにつき1行。アクティブはウインドウが使っているもの、盾マークは保護された環境を示します。
行を選択すると、右側でその変数を編集できます。

環境を追加する
- 環境ページで、環境の横の+(環境を追加)をクリックします。
New Environmentという名前の新しい環境が開きます。名前のフィールドに名前を入力して↩を押します。- このサーバで異なる変数を追加します。
各環境はenvironments/内の1つのファイルです。ページには、変数の下にその名前がFile: environments/staging.tomlのように表示されます。
変数を編集する
各行には次のものがあります。
| 列 | 内容 |
|---|---|
| チェックボックス | 変数を削除せずに、オンまたはオフにします。 |
| 名前 | {{…}}の中に書く名前。 |
| 値 | 値。シークレットの場合は、値をキーチェーンに保存するフィールド。 |
| シークレット | 値をファイルではなく、このMacのキーチェーンに保存します。シークレットを参照してください。 |
| − | 変数を削除します。 |
変数を追加をクリックすると、新しい行が追加されます。Echolotは、入力が止まった少し後にテーブルを保存します。すべての変更は編集 › 取り消すで取り消せます。
環境に必要なのは、ワークスペースと異なる変数だけです。それ以外はすべて、ワークスペースのデフォルトから取られます。
環境の名前変更、保護、削除
環境の上部には次のものがあります。
- 名前のフィールドで名前を変更します。ファイルの名前は変わらないので、そのファイルを参照しているものは引き続き見つかります。このページで追加した環境は
New Environmentとして始まるため、あとでどんな名前にしても、ファイルはnew-environment.tomlのままです。--envには名前も指定できます。 - 保護をオンにすると、その環境へのすべての送信が先に確認されます。保護された環境を参照してください。
- 環境を削除…は、確認してから、そのファイルをゴミ箱に入れます。アクティブだった場合、ウインドウは環境なしに切り替わります。
グローバル変数
グローバルには、あなた自身のユーザー名など、このMacのすべてのワークスペースで使う変数を置きます。いちばん広いレベルで、同じ名前のワークスペース、環境、フォルダ、リクエストの変数に上書きされます。どのワークスペースにも含まれないので、チームメンバーやコマンドラインツールからは見えません。
値の出どころを確認する
表示 › 変数を表示(⌥⌘V)は、変数パネルを開きます。現在のリクエストが参照できるすべての変数が、グローバル、ワークスペース、各環境、リクエストのフォルダ、リクエストの列に並びます。使用中の値には目印が付き、アクティブでない環境は比較用に表示されます。シークレットはマスクされたままです。列のタイトルをクリックすると、その編集場所に移動します。パネルをピン留めすると、ページの横の列として残せます。

リクエストのフィールド内の{{variable}}にポインタを置くと、クイックルックが表示されます。値、どのレベルから来ているか、パネルをその変数の位置で開くすべての変数…が表示されます。


