クエリの送信とレスポンス
組み立てたクエリを HTTP で送信し、レスポンスとエラーの分類を確認する操作を説明します。
概要
送信は「組み立てたクエリ × 選択中の環境」で行います。HTTP 通信は端末側(GalleonQL 本体)から発行される ため、ブラウザの CORS 制限を受けません。フロントから直接アクセスできない社内 API でも、GalleonQL の デスクトッププロセスから到達できれば送信できます。応答は 4 つのタブで確認でき、エラーは起因ごとに 分類して表示されます。用語は 主要な用語 を参照してください。
前提
- 送信先の環境が選択され、解決後 URL が確定していること(未解決の
{{...}}が残っていると送信できません。 環境の登録・切替)。 - クエリビルダー でルートフィールドを 1 件以上追加していること (0 件の間は送信できません)。
- スキーマの取込は送信の必須条件ではありません(送信バーとレスポンス領域は未取込でも表示されます)。 ただしクエリの組み立てには取込が必要です(スキーマの取り込み)。
画面上の位置
画面は横 3 ペイン(左=リクエスト / 中央=レスポンス / 右=スキーマ)です。左ペインのタブは
Query | Auth | Headers。送信バーは左ペインの Query タブにあり、上から
クエリビルダー → Generated Query パネル → 送信バー(HTTP メソッドセレクタ + ▶ 送信 + ステータス行)
の順です。レスポンスは中央ペインに表示されます。Auth / Headers タブには送信ボタンはありません。
操作手順
1. 環境とクエリを用意する
- トップバーの環境セレクタで送信先の環境を選び、解決後 URL が表示されていることを確認します
(空や未解決の
{{...}}のままだと送信できません)。 - 認証が必要なら、環境エディタの「認証」節で既定方式と秘密を設定します (環境の登録・切替)。
- 必要なら Auth / Headers タブを確認します(下記)。
- Query タブでクエリを組み立てます(クエリビルダー)。Generated Query の内容が そのまま送信本文になります。
Auth タブ(リクエストの認証方式)
左ペインの Auth タブで認証方式を選びます。秘密(鍵)は選択中の環境に保存され、 エクスポートには漏れません。
| 選択肢 | 意味 |
|---|---|
| 環境の既定を継承 | 選択中環境の既定方式と秘密を使う(リクエストの既定) |
| Bearer | 環境の Bearer トークンから Authorization: Bearer … を組み立てる |
| Basic | 環境の Basic ユーザー名/パスワードから Authorization: Basic … を組み立てる |
「環境の既定を継承」では鍵入力欄は出ません(鍵は環境エディタの「認証」節)。Bearer / Basic を選ぶと 鍵入力欄が出て、入力値は選択中環境の秘密として保存されます。環境未選択で Bearer / Basic を選ぶと 「環境を選択すると鍵を入力できます。」と表示されます。空トークン等の警告は 環境の登録・切替 と同じ文言です。
Headers タブ(認証の ON/OFF・リクエスト固有ヘッダー・最終プレビュー)
左ペインの Headers タブの一番上に [✓] 認証を使う チェックがあります。
- ON … 認証ヘッダーを組み立てる(Auth タブの方式を使う)。
- OFF …
Authorizationを付けない(方式は保持したまま。再 ON で戻る)。
その下の「このリクエスト固有」節で、この送信にだけ載せたいヘッダー(由来 R)を追加・編集・削除できます。
ヘッダー名(例 X-Request-Id)と値を入れて「ヘッダーを追加」。値には {{envVar}} を書けます
(選択中の環境で解決されます)。最下部の「送信される最終ヘッダー」に、カスケード・変数解決した結果が
由来バッジ付きで表示されます(環境の登録・切替 の「ヘッダーのカスケード」参照)。
リクエスト固有ヘッダー・認証方式・組み立て中の内容・HTTP メソッドは自動保存され、起動時や プロジェクト切替時に復元されます(環境切替では載せ替えません)。レスポンス本文は保存されず、 タブを切り替えると Response ペインはリセットされます。
2. HTTP メソッドを選び「▶ 送信」を押す
送信バー左のメソッドセレクタで HTTP メソッドを選びます(既定 POST)。
| メソッド | 送信の仕方 |
|---|---|
| POST | JSON body { "query": "..." }(変数モードでは { "query": "...", "variables": {…} })+ Content-Type: application/json |
| GET | body なし。URL に query パラメータを URL エンコードして付与(変数モードでは &variables=<URL エンコードした JSON> も併せて付与) |
| UPDATE | POST と同じ body(UPDATE は標準メソッドではありません) |
| DELETE | POST と同じ body(JSON) |
クエリビルダーの入力モードが変数のときは、生成された variables(JSON)も一緒に送信されます(POST 系はボディに、
GET は &variables= パラメータに)。インラインのときは従来どおりクエリ本文だけを送り、variables は付きません
(クエリビルダー の入力モードの切替)。
引数の値に書いた {{環境変数}} は、クエリ本文・variables とも送信時に選択中の環境の値へ解決されてから送られます
(未解決のキーが残っていても送信はブロックされず警告のみ)。解決後の内容は Generated Query の「最終形(解決後)」
トグルで確認でき、履歴や保存には元の {{...}} がそのまま残ります(ヘッダー・URL の {{...}} も同様に解決されます)。
▶ 送信 をクリックすると、送信中はラベルが 送信中... に変わりボタンが無効化されます。応答が返ると、
ステータス行に HTTP {ステータス} · {所要時間} ms(例 HTTP 200 · 1234 ms)が表示されます。
ネットワーク到達前に失敗した場合は 失敗 · {所要時間} ms です。未送信時は 未送信。
3. レスポンスを確認する
中央ペイン(Response)の見出し右に、送信バーと同じ形式のメタ情報が表示されます。パネル内の 4 タブで 見方を切り替えます。
| タブ | 内容 |
|---|---|
| レスポンス | ボディを JSON として解析した折りたたみ可能なツリー(既定は全展開) |
| raw | サーバから受け取ったボディ文字列を加工せずそのまま表示 |
| Request Header | 送信時に実際に使ったヘッダーを由来バッジ付きで表示 |
| Response Header | レスポンスヘッダーを全件表示(同名の重複・受信順序もそのまま) |
- 「レスポンス」タブは行の
▼(折りたたむ)/▶(展開)で切り替えます。新しい応答が来ると全展開へ リセットされます。JSON として解析できないボディは「JSON として解析できないためツリー表示できません。 raw タブで原文を確認してください。」と案内されます。 - Request Header の由来バッジは A(アプリ)/ P(プロジェクト)/ E(環境)/ Au(認証)/ R(リクエスト)/
無印(送信時に合成される
Content-Type等)です。
4. エラー・部分エラーの見方
GraphQL は HTTP 200 でも errors[] を返すことがあります。GalleonQL はエラーの起因を分類して表示します。
完全なエラー(成功データなし) は Response 上部に赤字で [分類名] メッセージ として表示されます。
| 分類 | 主な原因 |
|---|---|
| ネットワークエラー | 接続失敗・タイムアウト・TLS/DNS など、HTTP 応答自体が得られない |
| 認証エラー | HTTP 401 / 403 |
| クライアント(クエリ)エラー | HTTP 400 など 4xx、GraphQL のバリデーション/パース失敗、有効な GraphQL でない 2xx/3xx |
| サーバエラー | HTTP 5xx、resolver 内部エラー、JSON として解析できない応答 |
代表的なメッセージ例:
| 状況 | メッセージ |
|---|---|
| 認証失敗 | 認証に失敗しました(HTTP {ステータス})。環境の認証設定を確認してください。 |
| クエリの問題 | リクエストまたはクエリの内容に問題があります(HTTP {ステータス})。 |
| サーバ側 | サーバ側でエラーが発生しました(HTTP {ステータス})。 |
| GraphQL 応答でない 2xx/3xx | 有効な GraphQL 応答ではありません。エンドポイント URL・パスを確認してください。 |
| タイムアウト | 応答がタイムアウトしました(接続10秒/全体60秒以内に応答なし)。 |
タイムアウト値は接続 10 秒 / 全体 60 秒(固定)です。低速なサーバでは応答まで数十秒かかることがあります。
部分エラー(data と errors の併存) では、ツリーに data 側を残したまま、Response 上部に黄色で
「部分的なエラーが含まれています:」と表示され、各エラーメッセージが並びます(extensions.code があれば
メッセージ (CODE) の形式)。
送信できないとき(ガード)
▶ 送信 が無効(薄い表示)のときは、ボタンの外側にカーソルを乗せると理由がツールチップで表示されます
(複数該当時は最も優先度の高い 1 件)。
| 優先 | ツールチップの文言 | 対処 |
|---|---|---|
| 1 | 送信中です |
直前の送信の完了を待つ |
| 2 | 環境が選択されていません |
環境を追加・選択する(環境の登録・切替) |
| 3 | エンドポイント URL が未解決です。環境のリクエスト URL を確認してください |
環境のリクエスト URL と参照先変数を直す |
| 4 | クエリが空です。右のスキーマから add Query でフィールドを追加してください |
+ query でフィールドを追加する |
送信例
架空スキーマ type Query { hello: String } を例にします。
- 環境セレクタで送信先の環境を選ぶ(トップバーに解決後 URL が表示される)。
- 認証が必要なら環境の「認証」節で方式とトークンを設定する。Auth タブは「環境の既定を継承」でよい。
- 右ペインのスキーマドキュメントで
helloの+ queryをクリックし、Generated Query がquery MyQuery { hello }になることを確認する。 - メソッド
POSTのまま▶ 送信をクリックする。 HTTP 200 · 42 msのような表示になり、「レスポンス」タブにdata → hello → "world"のツリー、 「raw」タブに{"data":{"hello":"world"}}がそのまま表示される。
ポイント
- 「送信される最終ヘッダー」プレビューと実際に送信されるヘッダーは、常に同じ解決結果です。
- リクエスト履歴は左レールの履歴アイコンから確認できます(環境ごと直近 50 件)。行をクリックすると 新しいタブで、クエリ・ビルダー状態・リクエスト固有ヘッダー・HTTP メソッド・認証方式(秘密は除く)を 復元できます。レスポンス本文は履歴に保存されません。
- 送信中に環境を切り替えても、進行中の応答が新しい状態を上書きすることはありません。切り替えた先で 改めて送信し直してください。
現時点での制限事項
- GraphQL 変数の送信は入力モードに従います。 インラインではクエリ本文のみ(POST 系は
{ "query": "..." }、 GET は?query=...)、変数モードでは variables も送ります(POST 系はボディ{ "query": "...", "variables": {…} }、 GET は&variables=<URL エンコードした JSON>)。入力モードの切替は クエリビルダー を参照。 - 必須引数のあるフィールドは、クエリビルダー の引数入力で値を設定してから 送信してください。未設定のまま送るとサーバ側でクライアント(クエリ)エラーになり得ます。
- UPDATE は標準の HTTP メソッドではありません。 受け付けないサーバでは失敗します。
- 認証は なし(none)/ Bearer / Basic のみです(API Key・OAuth2 は未対応)。
- 接続タイムアウト 10 秒 / 全体タイムアウト 60 秒は固定で、ユーザー設定にはできません。
うまくいかないときは
| 症状 | 想定される原因 | 対処 |
|---|---|---|
▶ 送信 が押せない |
上記「送信できないとき」のガード条件 | ツールチップの文言を確認し、環境・URL・クエリを整える |
[ネットワークエラー] 応答がタイムアウトしました… |
サーバが遅い、または到達不能 | エンドポイントの稼働とネットワークを確認する(低速サーバでは全体 60 秒近く待つことがある) |
[認証エラー] 認証に失敗しました(HTTP 401)。… |
HTTP 401 / 403 | 環境の「認証」節と Auth タブの方式を確認する。最終ヘッダーに Authorization(由来 Au)が載っているかも見る |
[クライアント(クエリ)エラー] …(HTTP 400)。 |
クエリ不正・必須引数不足・パス誤りなど | Generated Query と引数入力を確認する。URL のパスも確認する |
[クライアント(クエリ)エラー] 有効な GraphQL 応答ではありません。… |
2xx/3xx だが GraphQL 応答でない | エンドポイント URL・パス(/graphql の付け忘れ等)を確認する |
[サーバエラー] … |
HTTP 5xx・resolver 内部エラー・非 JSON 応答 | サーバ側のログを確認する。raw タブで原文を見る |
部分的なエラーが含まれています: が出る |
data と errors が併存 |
ツリーのデータと各エラーメッセージを併せて確認する |
| ツリーに何も出ず raw への誘導だけ | ボディが JSON でない | raw タブで原文を確認する。エンドポイントや Content-Type を疑う |
| UPDATE で失敗する | サーバが非標準メソッド UPDATE を受け付けない | POST に切り替える |
関連ドキュメント
- クエリの組み立て: クエリビルダー
- 環境・URL・認証・ヘッダーのカスケード: 環境の登録・切替
- スキーマの取り込み(同じエラー分類・タイムアウト): スキーマの取り込み
- 用語: 主要な用語
- 索引に戻る: ユーザーマニュアル目次