GraftQL マニュアル
変更履歴

環境の登録・切替

接続先ごとの設定をまとめた「環境(接続プロファイル)」を登録・切り替え、環境変数・認証・ヘッダーを設定する操作を説明します。

環境とは(接続プロファイル)(概要)

環境は Postman の「環境(Environment)」に相当する、切り替え可能な接続プロファイルです。 コレクションやクエリの親(中間ノード)ではなく、クエリとは独立して存在します(直交型)。 クエリは環境に依存せずコレクション配下に持ち、送信やスキーマ取込は常に「操作対象 × 選択中の環境」で 組み立てられます。用語は 主要な用語 を参照してください。

前提

環境変数と GraphQL 変数の違い(混同しないでください)

GalleonQL は 2 種類の「変数」を区別します。本ページで扱うのは環境変数です。

環境変数(本ページの対象) GraphQL 変数
記法 {{baseUrl}} {{token}} のように波括弧 2 つ $id $input のようにクエリ内で宣言
持ち主 環境が key-value で保持 クエリが既定値を持つ
用途 接続先 URL など、環境ごとに変わる接続設定 クエリの引数
差し込み先 エンドポイント URL・ヘッダーの値 クエリ本文の引数

名前付き GraphQL 変数($id 等)は、クエリビルダーの入力モードを「変数」に切り替えると使えます(クエリビルダー 参照)。

認証の秘密(Bearer トークン・Basic パスワード)は環境変数ではなく、後述の「認証」節に入れてください。

操作手順

1. 環境エディタを開く

トップバーには、環境セレクタ(ドロップダウン)、選択中の環境の解決後 URL、「編集」ボタンが並んでいます。 「編集」をクリックすると環境エディタ(モーダル)が開き、開いた時点で選択中だった環境が編集対象になります。

2. 環境を追加する

「環境一覧」節の「新しい環境名」欄に名前を入力し、「+ 環境を追加」をクリックします。

  • 名前が空(前後の空白を除いて空)の場合は追加されません。
  • 追加された環境は、URL・環境変数・環境ヘッダーとも空、**認証は「なし(none)」**で作成されます。
  • 追加した環境は、その場で編集できるよう自動的に選択されます。

3. リクエスト URL を設定する

「リクエスト URL」節に、直 URL(例 https://api.example.com/graphql)または環境変数参照 (例 {{baseUrl}})を入力します。

  • 入力欄の下に「解決後: …」のプレビューが表示されます。未解決の {{...}} があると警告されます。
  • 送信・スキーマ取込のエンドポイントは、このリクエスト URL を環境変数で解決した値を使います。

4. 環境変数を追加・編集・削除する

「環境変数」節で「変数名」「値」を入力し、「環境変数を追加」をクリックします。

  • 追加済みの変数は、一覧の値欄を直接編集すると即座に更新されます。各行の「削除」で削除できます。
  • リクエスト URL やヘッダーの値の中で {{key}} として参照できます。{{ token }} のように 波括弧と変数名の間に空白があっても解決されます。
  • 間接参照は 1 段までしか解決されません(後述「制限事項」)。
  • 認証の Bearer トークンや Basic パスワードはここに置かないでください(次の「認証」節を使います)。

変数サジェスト({{ オートコンプリート)

URL・ヘッダー・変数の欄で、{{ の後に 1 文字以上打つと候補一覧が開きます。

操作 結果
Enter / Tab / クリック {{変数名}} を挿入
↑ / ↓ 候補のハイライト移動
Escape サジェストを閉じる

候補の先頭バッジ:

バッジ 意味
P プロジェクト共通変数
E 環境変数
A アプリ組み込み(例: AppUserAgent

同名の P と E は別行で出ます。解決時は環境側がプロジェクトを上書きします。認証秘密欄には サジェストは出ません(認証値はテンプレート展開しないため)。

5. 認証(既定方式と秘密)を設定する

「認証」節(見出し左に由来バッジ Au)で、この環境の既定認証方式と秘密を設定します。

既定の認証方式 意味 表示される秘密欄
なし(none) 認証ヘッダーを付けない なし
Bearer Authorization: Bearer <token> を組み立てる Bearer トークン
Basic Authorization: Basic base64(ユーザー名:パスワード) を組み立てる Basic ユーザー名 / Basic パスワード
  • リクエストの Auth タブが「環境の既定を継承」のとき、ここで設定した方式と秘密から Authorization が 自動注入されます(由来 Au)。秘密はエクスポート/インポートされません。
  • 認証値は {{...}} を展開しません(秘密をテンプレート経由にしない設計)。トークン欄に {{token}} と 書いても、そのままの文字列が使われます。
  • トークンが空の Bearer では Authorization ヘッダー自体を送りません。パスワードが空の Basic は ヘッダーを送ります(空パスワードとして符号化。警告のみ)。
状況 警告文言
Bearer でトークンが空 Bearer 認証のトークンが空です。Auth タブまたは環境の認証設定でトークンを入力してください。
Basic でパスワードが空 Basic 認証のパスワードが空です。意図した設定か確認してください。

リクエスト側で方式だけを上書きする方法は クエリの送信とレスポンス の 「Auth タブ」を参照してください。

6. 環境リクエストヘッダーを追加・編集・削除する

「環境リクエストヘッダー」節(由来バッジ E)で、この環境固有の HTTP ヘッダーを設定します。

  • 「Header」「Value」を入力し、「ヘッダーを追加」をクリックします。
  • 値には {{envVar}} のように環境変数を差し込めます({{ サジェスト可)。
  • 追加済みの行は各欄を直接編集すると即座に更新されます。「削除」で削除できます。
  • Authorization の手書きは非推奨です(「認証」節を使ってください)。互換のため入力自体はできますが、 環境ヘッダーに書いた Authorization は、その後の認証段(Au)やリクエスト固有ヘッダー(R)で 上書きされます(後述「ヘッダーのカスケード」)。

7. 環境名を変更する・環境を削除する

  • 「環境名」欄を編集すると、その環境の名前が即座に変わります。
  • 環境一覧の各行の「削除」で環境を削除できます。すべて削除して 0 件にもできます(ただしその場合 スキーマ取込は実行できません)。
  • 選択中の環境を削除した場合、残っている環境のうち先頭のものが自動的に選択されます。

8. 環境を切り替える

トップバーの環境セレクタで切り替えたい環境を選ぶと、解決後の URL、左ペイン Headers タブの最終ヘッダー プレビュー、認証の Authorization が即座に切り替わります。環境が 0 件の場合、セレクタは無効化され 「(環境がありません)」と表示されます。

設定例

用途 環境名 リクエスト URL 環境変数 認証 環境リクエストヘッダー
ローカル開発(初期サンプル) Default {{baseUrl}} baseUrl = http://localhost:4000/graphql 既定方式 Bearer、トークン dev-local Content-Type = application/json
ステージング Staging https://staging.example.com/graphql 任意 既定方式 Bearer、発行済みトークン 任意
Basic 認証の API BasicApi https://api.example.com/graphql 任意 既定方式 Basic、ユーザー名/パスワード 任意
認証不要の公開 API Public https://countries.trevorblades.com/ 任意 なし(none) 任意

ヘッダーのカスケード(プロジェクト → 環境 → 認証 → リクエスト)

送信されるヘッダーは次の順にマージされ、同じヘッダー名は下位が上位を上書きします。

  1. アプリ組み込み(由来 A。例: User-Agent
  2. プロジェクト共通ヘッダー(P
  3. 環境リクエストヘッダー(E
  4. 認証(方式+秘密から組み立てた AuthorizationAu
  5. リクエスト固有ヘッダー(R
  • 優先順位: リクエスト > 認証 > 環境 > プロジェクト > アプリ。
  • ヘッダー名の照合は大文字・小文字を区別しませんcontent-typeContent-Type は同一ヘッダーとして 1 件に畳まれ、最終的な表示名は勝った側のものになります)。
  • 左ペインの Headers タブに「送信される最終ヘッダー」プレビューが出て、キー・解決後の値・由来バッジが 表示されます。このプレビューは実際の送信と同じ解決結果です (クエリの送信とレスポンス)。
由来バッジ 意味
A アプリ設定
P プロジェクト設定
E 環境設定
Au 認証
R リクエスト設定

永続化と復元

環境(名前・環境変数・環境ヘッダー・認証の方式と秘密)と、最後に選択していた環境は、追加・編集・削除・ 切替のたびに端末内へ自動保存されます。「保存」操作は不要です。アプリを再起動すると、登録した環境一覧と 最後に選択していた環境がそのまま復元されます。この復元では HTTP を一切発行しません。

  • 初回起動時(環境が 1 件も保存されていない場合)は、サンプル環境「Default」(上の設定例の 1 行目・ Bearer トークン dev-local を含む)が 1 件自動作成されます。
  • 環境を切り替えて解決後の URL が変わると、その URL のスキーマキャッシュが自動的に読み込まれ、 表示中のスキーマ・クエリビルダーがその URL のものに切り替わります(HTTP は発行しません)。 まだ取り込んでいない URL の場合は「まだ取り込まれていません」の案内に変わります。新しい エンドポイントのスキーマを取得するには、切り替え後に改めて「スキーマを取り込む」(または「⟳ 再取込」)を 実行してください(スキーマの取り込み)。

🚨 認証トークン等は暗号化されずに保存されます

認証の秘密(Bearer トークン・Basic パスワード)や、環境変数・環境ヘッダーの値は、暗号化されず 平文のまま端末内に保存されます。アプリデータは OS のユーザー領域にあり他の OS ユーザーからは 読めませんが、ディスク上に平文が残る点は変わりません。これは意図的な決定で、Postman や Insomnia など 同種のローカルツールも平文で保存しています。トークンやパスワードを入力する際は、この点を踏まえて 取り扱ってください。

現時点での制限事項

  • 認証方式は なし(none)/ Bearer / Basic のみです(いずれも Authorization ヘッダーで完結)。 API Key・OAuth2・カスタムヘッダー認証は未対応です。
  • 認証値は環境変数({{...}})で解決されません。
  • 環境変数の間接参照は 1 段までしか解決されません。 例えば apiHost の値が {{host}} という別の 変数参照でも、host までは自動的に追いません(無限ループ防止のための意図的な制約)。この場合 置換後に {{host}} が残り、未解決として警告されます。多段が必要なら参照先の値を直接展開して 登録してください。
  • Authorization の手書きは非推奨です(「認証」節を使ってください)。

うまくいかないときは

症状 想定される原因 対処
セレクタが無効・「(環境がありません)」 環境が 0 件 「+ 環境を追加」で追加する
URL に {{baseUrl}} がそのまま出て「未解決の変数があります: baseUrl」 参照先の環境変数が未定義 変数を追加するか直 URL に書き換える
最終ヘッダーに「未解決の変数があります: ヘッダー名 (変数名)」 ヘッダー値の変数が未定義、または 2 段以上の間接参照 変数を追加、または 1 段に収める
「Bearer 認証のトークンが空です。…」が出る 方式が Bearer なのにトークン未入力 「認証」節でトークンを入力する
Authorization が最終ヘッダーに出ない 方式が「なし」、または Bearer でトークンが空 「認証」節とリクエストの Auth タブを確認する
環境を切り替えてもスキーマが変わらない 切替前後で解決後 URL が同じ 仕様。別の URL に解決される環境に切り替える
切り替えたらスキーマが消えて「まだ取り込まれていません」になった 切替先 URL がまだ未取込 仕様(自動取得はしません)。「スキーマを取り込む」を実行する
再起動したらサンプル「Default」だけになった 保存データの破損、または DB エラーでのフォールバック トップバー直下の警告表示を確認する。必要なら環境を作り直す

関連ドキュメント