GraphQL文書

GraphQL整形構文と型の確認を分ける

操作文書、SDL、変数JSONを切り替えて編集できます。フィールド検証には、操作文書モードで完全なSDLスキーマを指定してください。

GraphQL整形

入力

結果

文書はこのブラウザー内で処理します。APIへの送信、履歴の保存、URLへの入力追加は行いません。

オプション

スキーマなしでは構文のみを確認します。完全なSDLを指定すると型とフィールドを静的に検証します。変数はJSONオブジェクトの構文のみを確認し、値の型は照合しません。

文書とスキーマはそれぞれ100,000文字、変数は20,000文字まで。GraphQLは20,000トークン、ネスト100段までで、処理は8秒で停止します。

文書を入力するかサンプルを読み込んでください。

GraphQL整形は、ログから取り出した一行のクエリをレビューするときに役立ちます。ネストした選択とフラグメントを読みやすく並べ、参照先の定義が同じ文書に含まれるかを確認できます。

構文が正しくても、呼び出し先にそのフィールドがあるとは限りません。スキーマを渡した場合と渡していない場合で、結果のステータスが示す確認範囲は異なります。

GraphQL整形で確認しやすくする

操作とフラグメントを見渡す

GraphQL整形は選択セットを2スペースで字下げし、文書全体を出力します。構造ビューには操作、変数宣言、フラグメントとフィールドの行番号が並びます。参照を勝手に展開しないため、元の定義単位で追えます。

一行に詰まった文書が字下げされた行に展開され、変数オブジェクトが別のカードに表示される。

スキーマがあると分かること

GraphQL構文チェックだけでは存在しないフィールドを見つけられません。完全なスキーマSDLを追加すると、選択先の型や引数、フラグメントの関係を検証できます。問題のある入力元もエラーに表示されます。

構文の確認を通過したクエリが、スキーマとの照合で不一致のフィールドを指摘される。

確認範囲を選んで使う

01

型の断片にはSDLを選ぶ

操作文書モードはquery、mutation、subscriptionとフラグメント用です。単独のtypeやextendを読むときはSDLモードを使えば、Queryルートがなくても整形できます。変数だけのモードもあります。

02

タブで検証材料を追加する

操作文書モードでは文書、スキーマ、変数を別々に保持します。タブの切り替えで入力は消えません。サンプルの適用前には置き換える内容と文字数を確認できます。

03

更新待ちと表示切り替えを区別する

自動処理は入力が止まってから400ミリ秒後に実行します。オフにすると処理ボタンとCtrl/Cmd+Enterが使えます。入力の変更は結果を古くしますが、出力ビューの切り替えは再計算しません。

読みやすさと構造を確認する

クエリの整形と圧縮

GraphQLクエリ整形でレビュー用の字下げをそろえ、GraphQL圧縮で不要な区切りを除きます。名前の間に必要な空白、文字列の値、フィールドの順序は保持します。最適化や並べ替えは行いません。

元の行番号が分かる構造一覧

操作と型の定義を100件ずつ表示できます。JSON形式の構造ダウンロードには未表示の項目も含まれます。選択の深さを実行コストとみなす表示はありません。

数値表記を保持する変数整形

変数JSONの9007199254740993や1.2300e+40を浮動小数点数に変換せず保持します。数値のようなキーも入力順を維持します。重複キーは上書きせずエラーにします。

入力元に戻れる診断

位置を取得できる構文エラーには行・列を表示します。エラーを押すと該当タブに移動します。スキーマ検証で失敗した場合も整形済み文書は読めますが、修正するまで書き出しは無効です。

結果から判断できる範囲

静的検証は実行ではない
APIリクエストを送りません。変数の値が必須か、実行時に型変換できるか、独自スカラーや業務上の条件を満たすかは検証対象外です。文書中の変数宣言型は標準の静的検証に含まれます。
任意スキーマ欄には完全なSDLを使う
イントロスペクションJSONやURLは入力できません。クエリルート、参照型、独自ディレクティブの定義を含めてください。Federationの合成とコード生成は対象外です。独立したSDLモードは構文のみを確認します。
コメントと説明文字列は別扱い
整形・圧縮した出力から#コメントは消えます。SDLの説明文字列は構文の一部として残ります。原文は入力欄に残り、自動修復、外部フラグメントの検索、フィールドの並べ替えは行いません。
上限を超えると処理を止める
文書とスキーマは各100,000文字、変数は20,000文字までです。GraphQLは20,000トークンと100段の区切りのネスト、JSONも100段を上限とします。8秒を超えた処理は停止するので分割して試してください。

GraphQL整形のよくある質問

エディターの入力が正しいGraphQL構文かどうか確認するには?

パーサーはスキーマがなくても文法に従っているかを確認できます。操作文書モードでスキーマを空にすると構文のみを検証します。サーバーにフィールドが存在することまでは確認できません。

サーバーのスキーマでGraphQLの操作を検証するには?

サーバーの完全なSDLをスキーマ欄に、操作と必要なフラグメントを文書欄に貼り付けます。フィールド、引数、宣言型を静的に検証します。認証や実行、リゾルバーの動作確認は行いません。

GraphQLの変数が無効なJSONと判定されるのはなぜですか?

変数はGraphQLの入力オブジェクト記法ではなく厳密なJSONです。キーと文字列を二重引用符で囲み、末尾のカンマを除いてください。ルートはオブジェクトで、重複キーも許可しません。

「Query root type must be provided」と表示されるのはなぜですか?

完全なスキーマとして渡した内容に、有効なクエリルートがない場合のエラーです。type Queryを定義するか、schema宣言で既存のオブジェクト型を指定します。単独の型や拡張の整形にはSDLモードを使ってください。

GraphQLクエリを出力するとフラグメント定義が含まれないのはなぜですか?

操作ノードだけを出力しても、別の場所にあるフラグメント定義は追加されません。このツールは貼り付けた文書全体を出力します。必要な定義を同じ文書に含めてください。別ファイルの読み込みや参照の展開は行いません。

期待と違う結果になりましたか?

次のレビューに備える

GraphQL整形で文書を読み直し、検証範囲を確認してから現在の結果を書き出しましょう。