プロジェクトのエクスポート/インポート
このページでは、プロジェクトを JSON ファイルに書き出し(エクスポート)・読み込み(インポート)する操作手順を説明します。
概要
GalleonQL は、プロジェクト単位で内容を 1 つの JSON ファイルに書き出したり、そのファイルから読み込んだり できます。次のような用途に使います。
- バックアップ: 大切なプロジェクトをファイルとして保存しておく
- 共有: チームや他の人にプロジェクトを渡す(Git などでの共有)
- 持ち出し: 別のマシンへプロジェクトを移す
ここでいう「プロジェクト」には、共通ヘッダー・共通変数、環境(接続プロファイル)、 コレクション のツリー(フォルダ・リクエスト・お気に入り)が含まれます。用語の詳細は 主要な用語 を参照してください。
前提
- デスクトップアプリとして起動していること(OS のファイルダイアログを使います)。
- 操作はトップバーのプロジェクト選択メニューから行います(プロジェクト編集ドロワーの中ではありません)。
何が含まれるか・含まれないか
エクスポートしたファイルには、次のものが含まれます/含まれません。
| 含まれる | 含まれない |
|---|---|
| プロジェクト名 / 色 / 共通ヘッダー / 共通変数 | 認証の秘密(Bearer トークン・Basic パスワードなど) |
| 環境の名前 / 色 / リクエスト URL / 変数 / ヘッダー / 認証の方式のみ | リクエスト履歴 |
| コレクションツリー(フォルダ・リクエスト・お気に入り) | 開いているタブの下書き |
| リクエストの認証は 有効/無効 + 方式 のみ | スキーマのキャッシュ |
| HTTP タイムアウトの設定(プロジェクトの既定・環境ごとの上書き。設定していれば含まれる) | リクエストフック(Hooks タブのルール一式。専用テーブルにあり構造的に同梱されない。リクエストフック) |
⚠️ 認証トークンやパスワードはファイルに書き出されません。 これは、うっかり秘密を共有して しまわないための仕様です。インポートした後は、環境の「認証」でトークンなどを入れ直してください。
操作手順
エクスポート(特定のプロジェクトを書き出す)
- トップバーのプロジェクト名をクリックして、プロジェクト選択メニューを開きます。
- 書き出したいプロジェクト行の右側にある ↗(エクスポート) を押します。
- OS の保存ダイアログで、保存先とファイル名を指定します(既定のファイル名は
プロジェクト名.galleonql.json)。 - メニュー下部に成功メッセージが表示されます(認証の秘密は含まれない旨の案内が出ます)。
鉛筆(✎ 編集)ボタンは、名前・色・共通変数などを編集するためのものです。エクスポートとは別の操作です。
インポート(新規プロジェクトとして読み込む)
プロジェクトがまだ 1 件もない状態でも、同じメニューからインポートできます。
- トップバーのプロジェクト名をクリックして、プロジェクト選択メニューを開きます。
- メニュー下部の JSON からインポート を押します。
- OS のファイル選択ダイアログで、読み込む
.jsonを選びます。 - ファイルの検証と(必要なら)形式の変換が行われ、新規プロジェクトとして追加されます。
- 追加したプロジェクトが選択された状態になります。案内に従い、必要なら認証の秘密を入れ直します。
他社コレクションのインポート(Pro)
Pro プランでは、Postman Collection(v2.1・GraphQL リクエスト)を新規プロジェクトとして取り込めます。 GalleonQL 自前のプロジェクト JSON 用の JSON からインポート とは別の入口です。
前提
- Pro プランであること(Free ではファイル選択は開かず、Pro 案内が表示されます)
- デスクトップアプリとして起動していること
- 取り込むファイルが Postman Collection v2.1 で、GraphQL リクエストを 1 件以上含むこと
操作手順
- トップバーのプロジェクト名をクリックして、プロジェクト選択メニューを開きます。
- メニュー下部の 他社コレクションをインポート を押します。
- OS のファイル選択ダイアログで Postman の
.jsonを選びます。 - GraphQL リクエストが 1 件以上あれば、新規プロジェクトとして追加されます。
- 成功メッセージに 取込件数とスキップ件数が表示されます。案内に従い、環境でトークン等を再設定してください。
入力例
Postman でコレクションを Collection v2.1 としてエクスポートした .json を選びます。
GraphQL リクエスト(body.mode が graphql)が 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 付きクエリはスキップされます。件数は成功メッセージに出ます |
関連ドキュメント
- プロジェクト・環境・コレクションの基本: 環境(接続プロファイル)の登録・切替
- HTTP タイムアウトの設定: 環境(接続プロファイル)の登録・切替 の「HTTP タイムアウトを設定する」
- プランとライセンスの管理: プラン(Free / Pro)とライセンス
- 用語の説明: 主要な用語
- マニュアルの索引: GalleonQL ユーザーマニュアル