GraftQL マニュアル
変更履歴

主要な用語

このページでは、GalleonQL のマニュアル全体で使う基礎用語を、短い例とともにまとめます。他のページから参照される共通の土台です。

環境(接続プロファイル)

環境 は、「どのエンドポイントに、どんな認証・ヘッダーで接続するか」をひとまとめにした 切替可能な接続プロファイル です。GalleonQL は Postman と同じ 直交型 のモデルを採用しており、環境は階層の中間ノードではありません。

  • クエリは 環境に依存せず、コレクションの中に持ちます。
  • 送信は「クエリ × 選択中の環境」で組み立てます。トップバーで環境を切り替えるだけで、同じクエリの送信先を dev / stg / prod のように変えられます。

例: 環境 dev はローカルの http://localhost:4000/graphql、環境 prodhttps://api.example.com/graphql を指す。クエリ getUsers は 1 つだけ持ち、環境トグルで送信先を切り替える。

見た目の上では環境フィルタで階層のように見せることがありますが、データ構造としては直交(クエリと環境は別軸)です。詳しくは 環境の登録・切替 を参照してください。

環境変数({{...}}

環境変数 は、環境が持つ key-value のことです。{{...}} の形でエンドポイント URL・ヘッダー・GraphQL 変数の値などに差し込み、送信時に選択中環境の実値へ解決されます。

例: 環境変数 baseUrl = http://localhost:4000/graphql を定義し、リクエスト URL を {{baseUrl}} と書く。環境を切り替えると {{baseUrl}} の中身が入れ替わる。token を定義して Authorization ヘッダーに Bearer {{token}} のように使うこともできる。

環境変数は次の「GraphQL 変数」とは 別物 です。混同しないでください。

GraphQL 変数($id / $input

GraphQL 変数 は、GraphQL クエリ自身の引数です。$id$input のように $ で始まり、クエリの実行時に値を渡します。環境が持つ {{...}} の環境変数とは役割が異なります。

例: user(id: $id)$id が GraphQL 変数。baseUrltoken(環境変数)とは別の仕組み。

クエリビルダーでは、フィールドの 引数(arguments) をキー追加型の UI で入力し、field(name: value) の形で生成クエリに出力できます。さらに 入力モードを「変数」に切り替える と、トップレベルの引数が $名前 の名前付き GraphQL 変数に置き換わり、query($名前: 型){ … } と variables(JSON)を生成します。値は 変数マトリクス で入力します。詳しくは クエリビルダー を参照してください。

ヘッダーのカスケード

送信時のヘッダーは、プロジェクト共通 → 環境 → クエリ固有 の順に重ね合わせて(カスケードして)決まります。同じキーがあれば 下位(後ろ)が上書き します。

例: プロジェクト共通で X-App: galleonql、環境で Authorization: Bearer {{token}}、クエリ固有で X-Trace: 1 を持たせると、3 つが合流した最終ヘッダーになる。

送信前には、{{token}} などを選択中環境の実値へ解決した 最終ヘッダー をプレビューで確認できます。カスケードの詳細(認証の位置づけを含む)は 環境の登録・切替クエリの送信とレスポンス を参照してください。

スキーマ

スキーマ は、GraphQL エンドポイントが公開している型・フィールドの定義一式です。GalleonQL は環境(エンドポイント)ごとに、HTTP イントロスペクション で取得し、ローカルにキャッシュします。取り込んだスキーマは型カタログとして参照でき、クエリビルダーの土台になります。

取り込み手順は スキーマの取り込み、閲覧方法は スキーマドキュメントの参照 を参照してください。

葉(leaf)と枝(branch)

スキーマ上のフィールドは、参照している型の種類によって に分かれます。この区別が、ドキュメントの辿り方やクエリの組み立て方を左右します。

  • 葉(leaf): 参照先が スカラー / enum のフィールド。それ以上は展開できません。
  • 枝(branch): 参照先が object / interface / union のフィールド。さらに内側のフィールドを展開(add Child)できます。

例: User.nameString)は葉。User.friends[User!])は枝で、内側の name などをさらに展開できる。

add Query / add Child

add Queryadd Child は、クエリを段階的に組み立てる操作です。枝を継ぎ足すように、必要なフィールドだけを少しずつ広げてクエリを育てられます。

  • add Query(+ query: 型カタログのルート型(Query / Mutation)のフィールドを、クエリのルートとして挿入します。本体ボタンは常に子なし で追加します。
  • add Child(+ child: 挿入済みの枝に対して、直下のスカラーのみ を 1 階層展開します。

どちらも本体ボタンと メニューからなる split button です。 から「直下スカラーのみ」「直下すべて」を選ぶと、その 1 回だけ 粒度を上書きできます(固定の既定は変わりません)。詳しい操作は クエリビルダー を参照してください。

コレクション

コレクション は、クエリ(Query / Mutation)を整理して入れておく入れ物(フォルダ)です。ネスト(入れ子)できます。将来的に、個人スコープとチーム共有スコープの二層で扱えるよう設計されています。

プロジェクト

プロジェクト は、環境とコレクションが所属する一番外側の単位です。トップバーのセレクタでプロジェクトを切り替えると、その配下の環境・コレクションに切り替わります。プロジェクト単位での書き出し・読み込みは プロジェクトのエクスポート/インポート を参照してください。

起動時のライセンス確認(サブスク失効の自動反映)

起動時のライセンス確認 は、追加枠のライセンスを登録している場合に、GalleonQL が アプリの起動ごとにオンラインでライセンスの有効性を確認 する仕組みです。これにより、サブスクの解約や失効が、次回起動時に自動でアプリへ反映されます(無料枠だけのご利用時は行われません)。

  • 有効(サブスク継続中、または解約したが有効期限内)なら、追加枠はそのまま維持されます。
  • 失効(期限切れ・無効化・解約して有効期限が過ぎた等)なら、追加枠は自動的に 無料枠(1 枠)へ戻り、このデバイスからライセンスキーが削除 されます(枠を超えたプロジェクトは枠外になり、データは保持されます)。
  • オフライン起動 では、最後にオンラインで確認できてから 24 時間以内 かつ 有効期限内 なら一時的に維持され、「ライセンスが確認できません」と表示されます。これを過ぎると無料枠へ戻ります。オンラインに戻れば自動で再確認されます。

詳しくは プロジェクト枠とプラン を参照してください。

ライセンスの解除/サブスクの解約

どちらも有料の追加枠を手放す操作ですが、無料枠(1 枠)へ戻るタイミングが異なります。混同しないでください。

  • ライセンスの解除(このデバイスからライセンスを解除): 即座に 無料枠へ戻り、キーが削除されます。ただし請求は止まりません。
  • サブスクの解約: 請求を止める操作です。追加枠は 支払済みの期間が満了したあと、次回のアプリ起動時に自動的に 無料枠へ戻ります(上記「起動時のライセンス確認」による)。

詳しくは プロジェクト枠とプラン を参照してください。

エラー分類

GalleonQL は、取り込みや送信で発生したエラーを 起因ごとに分類 して表示します。原因の切り分けに役立ちます。

  • ネットワークエラー: 接続失敗・タイムアウト・DNS / TLS の問題など、サーバへ到達できない。
  • 認証エラー: HTTP 401 / 403。認証が必要、またはトークンが無効。
  • クライアント(クエリ)エラー: HTTP 400 など、リクエスト側(URL やクエリ)に問題がある。
  • サーバエラー: HTTP 5xx など、サーバ側に問題がある。
  • 部分エラー: 一部だけ失敗。GraphQL は HTTP 200(成功)でも、応答の中に errors[] を含めて返す ことがあります。

分類ごとの具体的な対処は スキーマの取り込みクエリの送信とレスポンス を参照してください。


マニュアル全体の目次は 索引 から辿れます。