重要なポイント
- 01公式graphql.jsパーサーを使用してクエリ、ミューテーション、サブスクリプション、SDLスキーマをフォーマット。
- 02構文を検証してエラーの正確なラインと列を報告 — スキーマは不要。
- 03GraphQLコメント(#)はフォーマット時に削除;保存したい文書化には説明文字列を使用。
- 04ブラウザで完全に実行 — 内部APIクエリと専有スキーマは非公開のままです。
GraphQLドキュメントをフォーマットする理由
GraphQLクエリはすぐに複雑になります — ネストされたフラグメント、インラインバリアブル、複数の操作定義、インターフェースとディレクティブ付きSDL型定義。一貫性のあるフォーマットはピアレビューを高速化し、欠けているクロージングブレースまたは引数ミスマッチを一見で識別しやすくします。
フォーマッタはリファレンスgraphql.jsパーサーを使用 — GraphQL仕様が付属するのと同じパーサーです。つまり、ここで取得する正規フォーマットはPrettierのGraphQLプラグンとほとんどのGraphQLツールが生成するものと一致します。ここで正常に解析されるすべてはApollo、Relay、graphql-requestで正常に解析されます。
GraphQLドキュメントをフォーマットする方法
- 01
GraphQLを貼り付け
クエリ、ミューテーション、サブスクリプション、フラグメント、またはSDLスキーマ定義を入力パネルに貼り付けます。
- 02
フォーマットをクリック
パーサーは正規インデント付きドキュメントを出力 — 2スペースインデント、1行1フィールド、一貫性のある引数整列。結果は出力パネルに表示されます。
- 03
オプションで検証
検証をクリックしてドキュメントがフォーマットされた出力を生成することなく解析することを確認します。結果は確認またはラインと列ナンバー付きの構文エラーリストです。
- 04
結果をコピー
コピーをクリックしてフォーマットされたドキュメントを取得します。コードベース、PRコード説明、またはドキュメントファイルに貼り付けます。
内部スキーマとAPIクエリで安全
graphql.jsパーサーはブラウザで完全に実行されます。操作テキストまたはスキーマ定義はサーバーに送信されません。プライベートフィールド名を参照するクエリまたはサードパーティツールに露出したくない内部型システムをフォーマットするのに安全です。
ここで検証は構文のみです — ドキュメントが有効なGraphQLドキュメントであることをチェックしますが、フィールド名が実スキーマに存在するか、バリアブルが引数型に一致するか、ディレクティブが正しく適用されるかはチェックしません。スキーマ認識検証は対象スキーマをドキュメント横にロードする必要があります。
GraphQLフォーマッタFAQ
GraphQLフォーマットはスキーマに対して検証しますか?
いいえ — 構文検証のみ。フィールドと引数が存在するかチェックするには対象スキーマが必要です。このツールはドキュメントが有効なGraphQLドキュメントであることを確認するのみです。
GraphQLのコメントは保持されますか?
いいえ。#で始まる行はパーサーで削除されます。フォーマット後に生き残る文書化には三重引用説明文字列を使用します。
どのGraphQL仕様バージョンがサポートされていますか?
2021年10月仕様、OneOf入力オブジェクトと@specifiedByディレクティブを含みます。
操作ドキュメントだけでなく、SDLスキーマ定義をフォーマットできますか?
はい。型定義、インターフェース宣言、ユニオン型、列挙型、ディレクティブ、説明はすべてフォーマッタを通してラウンドトリップで正しく処理されます。
クエリまたはスキーマはどこかにアップロードされますか?
いいえ。graphql.jsパーサーはブラウザで完全に実行 — デバイスを離れるものはありません。