GraftQL マニュアル
変更履歴

スキーマドキュメントの参照

このページでは、取り込んだスキーマを 型カタログ として閲覧・検索する方法を説明します。型や葉・枝などの用語は 主要な用語 を参照してください。

前提

  • スキーマの取り込み の手順でスキーマの取り込みに成功していること(型定義・Query フィールドの件数が緑色で表示されている状態)。一部エラーを含む部分的成功でも、スキーマが構築できていれば型カタログは表示されます。
  • 取り込みに失敗している(右ペインに赤字でエラーが出ている)場合は、型カタログは表示されません。先に スキーマの取り込み の「エラー時の対処」を参照してください。

型カタログの見方

スキーマの取り込みに成功すると、右ペイン(見出し「Schema」)の要約に続けて 型カタログのツリー が自動的に表示されます。追加の操作は不要です。

型カタログは、スキーマに含まれる 名前付き型 を一覧表示したものです(イントロスペクション内部で使う __ で始まる型は除外されます)。並び順は次のとおりです。

  1. ルート型QueryMutationSubscription。存在するものだけ、この順で先頭に表示)
  2. 残りの型 を種別ごとにグループ化して表示(同じ種別内は型名の昇順)
    • object(オブジェクト型) → interface(インターフェース型) → union(ユニオン型) → enum(列挙型) → input(入力オブジェクト型) → scalar(スカラー型)

各型の見出し行には、左に展開/折りたたみの三角アイコン( / )、型名、右端に 種別バッジ が表示されます。バッジはルート型のみ強調色で ROOT、それ以外は OBJECT / INTERFACE / UNION / ENUM / INPUT / SCALAR と表示されます。型に説明文(description)があれば見出しの下に補足として表示されます。

既定では ルート型(Query / Mutation / Subscription)のみが展開済み で、他は折りたたまれています。見出し行をクリックすると、その型の展開/折りたたみが切り替わります。

型を展開して中身を読む

型を展開すると、種別に応じて次の内容が表示されます。

  • object / interface / input: フィールド一覧。各行に「フィールド名」「引数(あれば (引数名: 型, ...))」「戻り値/プロパティの型(String![User!]! のようにリスト [...] と必須 ! を含めた表示)」が並びます。フィールド名をクリック すると、説明文・引数・戻り値の型をまとめて確認できるポップアップダイアログが開きます。ダイアログは ×・背景クリック・Esc・閉じるボタンで閉じられます。
  • union: メンバー型名の一覧のみが表示されます。
  • enum: 値の一覧が表示されます(各行に値の名前と、あれば説明文)。
  • scalar: それ以上辿れる要素が無いため、展開しても見出し行のみで中身はありません。

葉と枝・型名ジャンプ

object / interface のフィールドの型表示部分(: 型名 の箇所)は、参照先の種別によって見た目と挙動が変わります。この葉/枝の区別は 主要な用語 の定義と同じです。

  • 枝(branch): 参照先が object・interface・union の場合、型名は 下線付きのクリック可能なリンク になります。クリックすると、その型の見出しへ自動的に展開・スクロール移動します。
  • 葉(leaf): 参照先が scalar・enum の場合、型名はクリックできない通常のテキストです(それ以上辿れる階層がないため)。

一方、input(入力オブジェクト型)のフィールドの型名は、参照先の種別に関わらず常にクリックできません。GraphQL の仕様上、input フィールドの型には scalar・enum・input object しか指定できず、型名ジャンプの対象である枝(object / interface / union)にはなり得ないためです。別の input 型をネスト参照するフィールド(例: filter: UserFilterInput)も、その定義自体は型カタログ内にありますがクリックでは辿れません。参照先は検索ボックスや手動スクロールで探してください。

なお、現状の型名ジャンプは「型カタログ内の該当する型の見出しへ移動する」動作です。クエリビルダーへの追加や、フィールド単位の非推奨(deprecation)表示は行いません。

検索で絞り込む

型カタログ上部の検索ボックス(プレースホルダー「🔍 型・フィールドを検索」)に文字を入力すると、即座に(インクリメンタルに)絞り込まれます。

  • 大文字・小文字は区別しません(部分一致)。
  • 一致判定の対象は「型名」または「その型配下の項目名」(object / interface / input のフィールド名、union のメンバー型名、enum の値の名前)です。説明文(description)は検索対象に含まれません。
  • 一致した型は 自動的に展開 されます(一致箇所を見せるため)。
  • 検索中は、型グループの三角アイコンによる手動トグルが無効化 されます(自動展開を優先するため)。検索ボックスを空にすると元の展開状態に戻ります。
  • どの型にも一致しない場合、型カタログの表示は空になります(エラーではありません)。

検索例:

  • user → 型名に user を含む型(User, CreateUserInput など)
  • friendsfriends というフィールドを持つ型(User など)
  • adminADMIN のような値を持つ enum 型

+ query でクエリビルダーへ追加する

ルート型(Query / Mutation。Subscription は対象外) のフィールド行にのみ、右端に + query が表示されます。

  • 参照先が 枝(object / interface) のフィールドは、本体ボタンと メニューからなる split button+ query ▼)です。
  • 参照先が 葉(scalar / enum) のフィールドは、 の無いプレーンボタンです(展開する子を持たないため)。

本体をクリックすると、そのフィールドが 常に子なしのまま 中央ペインの Query タブのクエリビルダーへルートとして追加されます。 から「直下スカラーのみ」「直下すべて」を選ぶと、その 1 回だけ 選んだ粒度で直下フィールドを初期挿入した状態で追加できます。

+ queryUser などの通常のオブジェクト型のフィールド行には表示されません。粒度の意味や split button の詳しい操作、生成クエリのプレビュー/コピーは クエリビルダー を参照してください。

エラー時の対処

症状 想定される原因 対処
型カタログのツリーが表示されない スキーマの取り込みが未実行、または失敗している スキーマの取り込み で取り込みを先に成功させる。赤字エラーが出ている場合は同ページの「エラー時の対処」を参照
検索しても何も表示されない 検索文字列がどの型名・フィールド名・メンバー名・enum 値名にも一致していない 誤字を確認するか、検索ボックスを空にして全件表示に戻す。説明文の文言では絞り込めない点に注意
型名をクリックしても移動しない 参照先が葉(scalar / enum)、または input フィールドの型名でクリック不可の表示だった 下線が無ければクリック不可が正常。下線付きなのに動かない場合は、検索ボックスを空にしてから再度クリックする
三角アイコンで開閉できない 検索が有効なため手動トグルが無効化されている 検索ボックスを空にしてから開閉する
ルート型なのに + query が無い 対象が Subscription 型のフィールド(対象外) Query / Mutation のフィールドのみが対象

関連ドキュメント