GalleonQL マニュアル
変更履歴

プロジェクトのエクスポート/インポート

このページでは、プロジェクトを JSON ファイルに書き出し(エクスポート)・読み込み(インポート)する操作手順を説明します。

概要

GalleonQL は、プロジェクト単位で内容を 1 つの JSON ファイルに書き出したり、そのファイルから読み込んだり できます。次のような用途に使います。

  • バックアップ: 大切なプロジェクトをファイルとして保存しておく
  • 共有: チームや他の人にプロジェクトを渡す(Git などでの共有)
  • 持ち出し: 別のマシンへプロジェクトを移す

ここでいう「プロジェクト」には、共通ヘッダー・共通変数、環境(接続プロファイル)コレクション のツリー(フォルダ・リクエスト・お気に入り)が含まれます。用語の詳細は 主要な用語 を参照してください。

前提

  • デスクトップアプリとして起動していること(OS のファイルダイアログを使います)。
  • 操作はトップバーのプロジェクト選択メニューから行います(プロジェクト編集ドロワーの中ではありません)。

何が含まれるか・含まれないか

エクスポートしたファイルには、次のものが含まれます/含まれません。

含まれる 含まれない
プロジェクト名 / 色 / 共通ヘッダー / 共通変数 認証の秘密(Bearer トークン・Basic パスワードなど)
環境の名前 / 色 / リクエスト URL / 変数 / ヘッダー / 認証の方式のみ リクエスト履歴
コレクションツリー(フォルダ・リクエスト・お気に入り) 開いているタブの下書き
リクエストの認証は 有効/無効 + 方式 のみ スキーマのキャッシュ
HTTP タイムアウトの設定(プロジェクトの既定・環境ごとの上書き。設定していれば含まれる) リクエストフック(Hooks タブのルール一式。専用テーブルにあり構造的に同梱されない。リクエストフック

⚠️ 認証トークンやパスワードはファイルに書き出されません。 これは、うっかり秘密を共有して しまわないための仕様です。インポートした後は、環境の「認証」でトークンなどを入れ直してください。

操作手順

エクスポート(特定のプロジェクトを書き出す)

  1. トップバーのプロジェクト名をクリックして、プロジェクト選択メニューを開きます。
  2. 書き出したいプロジェクト行の右側にある ↗(エクスポート) を押します。
  3. OS の保存ダイアログで、保存先とファイル名を指定します(既定のファイル名は プロジェクト名.galleonql.json)。
  4. メニュー下部に成功メッセージが表示されます(認証の秘密は含まれない旨の案内が出ます)。

鉛筆(✎ 編集)ボタンは、名前・色・共通変数などを編集するためのものです。エクスポートとは別の操作です。

インポート(新規プロジェクトとして読み込む)

プロジェクトがまだ 1 件もない状態でも、同じメニューからインポートできます。

  1. トップバーのプロジェクト名をクリックして、プロジェクト選択メニューを開きます。
  2. メニュー下部の JSON からインポート を押します。
  3. OS のファイル選択ダイアログで、読み込む .json を選びます。
  4. ファイルの検証と(必要なら)形式の変換が行われ、新規プロジェクトとして追加されます。
  5. 追加したプロジェクトが選択された状態になります。案内に従い、必要なら認証の秘密を入れ直します。

他社コレクションのインポート(Pro)

Pro プランでは、Postman Collection(v2.1・GraphQL リクエスト)を新規プロジェクトとして取り込めます。 GalleonQL 自前のプロジェクト JSON 用の JSON からインポート とは別の入口です。

前提

  • Pro プランであること(Free ではファイル選択は開かず、Pro 案内が表示されます)
  • デスクトップアプリとして起動していること
  • 取り込むファイルが Postman Collection v2.1 で、GraphQL リクエストを 1 件以上含むこと

操作手順

  1. トップバーのプロジェクト名をクリックして、プロジェクト選択メニューを開きます。
  2. メニュー下部の 他社コレクションをインポート を押します。
  3. OS のファイル選択ダイアログで Postman の .json を選びます。
  4. GraphQL リクエストが 1 件以上あれば、新規プロジェクトとして追加されます。
  5. 成功メッセージに 取込件数とスキップ件数が表示されます。案内に従い、環境でトークン等を再設定してください。

入力例

Postman でコレクションを Collection v2.1 としてエクスポートした .json を選びます。 GraphQL リクエスト(body.modegraphql)が 1 件以上必要です。例(骨子):

  {
  "info": {
    "name": "My API",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "item": [
    {
      "name": "Get viewer",
      "request": {
        "method": "POST",
        "header": [
          { "key": "Content-Type", "value": "application/json" },
          { "key": "Authorization", "value": "Bearer secret-token" }
        ],
        "url": "https://api.example.com/graphql",
        "body": {
          "mode": "graphql",
          "graphql": {
            "query": "query Viewer { viewer { id name } }",
            "variables": "{}"
          }
        }
      }
    }
  ],
  "variable": [
    { "key": "baseUrl", "value": "https://api.example.com" },
    { "key": "access_token", "value": "do-not-import" }
  ]
}

REST のみのコレクションや、Insomnia / Bruno のエクスポートは現時点では取り込めません。

期待結果

  • 新規プロジェクトが追加され、選択された状態になります(同名がある場合は 名前 (2) のように採番されます)
  • メッセージ例: 「My API」を取り込みました(GraphQL 1 件 / スキップ 0 件)。既知の秘密キー(Authorization / Cookie / *token* 等)は best-effort で除外しています。環境のトークン等を再設定してください。
  • スキップされる例: REST のみのリクエスト、fragment を使うクエリ、フィールドに alias が付いたクエリ
  • best-effort で除外される秘密の例(キー名の完全一致、または末尾が token / secret / password / apikey 等): ヘッダー Authorization / Cookie、変数 access_token / myToken など。 すべての秘密が必ず消えるわけではありません(例: キー名が cred だけの任意名)。 取込後に環境の認証・変数を確認してください

Free ではボタンを押すと Pro 案内が表示されます。GalleonQL 自前のプロジェクト JSON は従来どおり JSON からインポート(Free 可)を使ってください。

ポイント

  • インポートは常に新規プロジェクトとして追加されます。 既存のプロジェクトを上書きすることはありません。 同じ名前のプロジェクトが既にある場合は、プロジェクト名 (2) のように括弧付きの番号を付けてリネームされます。

  • どのプロジェクトでも、↗(エクスポート)はいつでも使えます。 課金枠の上限を超えて「選択して使う」ことができなくなったプロジェクトでも、データを JSON として 救い出せます。プランとライセンスは プラン(Free / Pro)とライセンス を参照してください。

  • お気に入り(★) は、リクエストのお気に入り状態として保持され、インポート後も復元されます。

  • スキーマの取り込み(キャッシュ)は含まれません。 インポートされたプロジェクトは常に新規のプロジェクト として扱われるため、環境が元のプロジェクトと同じエンドポイント URL を指していても、そのプロジェクトでは 「まだ取り込まれていません」から始まります。必要な環境で改めて「スキーマを取り込む」を実行してください (スキーマの取り込み 参照)。

  • ファイルの形式が新しい/古いときは、次のように扱われます。

    ファイルの形式 挙動
    いま使っているアプリより新しい 読み込みを中断し、「アプリをアップデートしてください」と表示されます
    いま使っているアプリより古い 現在の形式へ自動的に変換し、欠けている項目は既定値で補います
    現在と同じ そのまま読み込みます

エラー時の対処

症状 対処
「アプリをアップデートしてください」と表示される ファイルが新しい形式です。アプリを更新してから、もう一度インポートしてください
「対応していない形式です」と表示される GalleonQL がエクスポートしたプロジェクト JSON か確認してください(他ツールのファイルは 他社コレクションをインポート 側を使います)
「JSON として読み込めません」/「JSON として読み取れませんでした」 ファイルが壊れていないか確認してください(テキストエディタで開けるかどうかで確認できます)
ダイアログをキャンセルした 何も変更されません(エラーも表示されません)
インポート後に送信すると認証エラーになる 認証の秘密はエクスポート対象外(他社取込では best-effort 除外)です。環境の「認証」でトークン等を入れ直してください(正常な挙動です)
Free で「他社コレクションをインポート」を押すと Pro 案内が出る 想定どおりの動作です。Pro にアップグレードするか、GalleonQL の JSON なら JSON からインポート を使ってください
「これは GalleonQL のプロジェクト JSON です。「JSON からインポート」から…」 他社取込の入口に自前 JSON を渡しています。JSON からインポート を使ってください
「未対応のファイル形式です。いまは Postman Collection v2.1(GraphQL)のみ…」 いま取り込めるのは Postman Collection v2.1 の GraphQL のみです
「GraphQL リクエストが見つかりませんでした」 REST のみのコレクションなど、GraphQL が 1 件も取れませんでした
成功したがスキップ件数が多い REST・fragment・フィールド alias 付きクエリはスキップされます。件数は成功メッセージに出ます

関連ドキュメント