ガイド

GraphQL Formatterの使い方:入力と整形結果を確認する方法

空または空白だけの入力では空の結果を確認できますが、内容を含むGraphQL入力は現行の動作では整形済みテキストを返す前に失敗します。入力条件と結果の分岐を確かめる手順として利用してください。

ツール GraphQL フォーマッター

入力条件を確認する目的

GraphQL Formatterは、GraphQLのクエリまたはスキーマをテキストとして受け取るツールです。この記事では、入力の条件をそろえて実行し、空白だけの入力と内容を含む入力で結果がどう分かれるかを確認します。現在確認できる動作では、空白だけの入力は空の結果になります。一方、クエリやスキーマを含む通常の入力は、整形済みテキストを返す前に処理で失敗します。そのため、非空のGraphQLを整形できることを前提にせず、入力内容と返却結果の状態を切り分けて確認することが大切です。

入力、設定、実行結果を確認する手順

  1. GraphQLのクエリまたはスキーマを、文字列の入力として用意します。主入力が空の状態では、graphqlまたはgql_inputに渡した値が使われる場合があります。ただし、エイリアス選択後の値が文字列でなければ、整形には進みません。
  2. 非空の文字列を試す場合は、UTF-8で1,000,000バイト以内に収めてください。このサイズを超える入力は、結果を返さずに失敗します。
  3. 必要ならモードとインデント幅を指定します。非空入力ではモードの既定値がbeautifyで、minifyだけが縮小処理を選びます。それ以外のモード値は別の方式にはならず、整形側の経路に進みます。インデント幅は通常2スペースが基準で、0未満、8超、整数へ変換できない値は2として扱われます。
  4. 実行後、入力が空または空白だけだったか、内容を含んでいたかを確認します。前者では空の整形テキストが返り、後者ではbeautifyとminifyのどちらでも、通常は整形結果の返却前に失敗します。空入力の確認では、モードとインデントの情報が正規化されず、指定値のまま扱われます。

返却結果から判断できる範囲

空の整形テキストが返ったときは、入力が空または空白だけだったという分岐を確認できます。その結果だけから、GraphQLの構文、妥当性、解析、実行、整形品質を判断することはできません。内容を含む文字列で失敗した場合は、モードの変更によって成功結果へ切り替わるとは考えず、入力が非空であること、型、サイズを順に見直します。minifyには、ハッシュ記号で始まるコメント風の文字列や一部の周辺空白を取り除く処理が書かれていますが、通常の非空入力では変換後のテキストに到達する前に失敗します。

使用例

クエリをまだ用意していない利用者が、空白だけの入力で設定値と空の結果を確認します。

空白だけのテキストを入力し、モードに「minify」、インデントに4を指定して実行します。

空白だけの入力では整形テキストが空になり、入力サイズと出力サイズは0になります。モードとインデントの情報は、指定した値のまま返ります。

制限事項

  • 空入力の結果からGraphQLの正しさや整形品質を評価することはできず、非空入力の整形成功結果も確認できません。

よくある間違い

  • 非空入力で結果が出ないときに、モードを何度も切り替えて成功を待つのは適切ではありません。両方の処理経路で返却前の失敗が確認されているため、空入力の確認と非空入力の失敗を別の結果として記録してください。

よくある質問

GraphQL Formatterでクエリを整形できますか?

空白だけを入力した場合に限り、空の整形テキストが返ります。クエリやスキーマを含めると、処理は結果の返却前に失敗します。

どのような入力を使えますか?

クエリまたはスキーマの文字列を渡してください。非空の値にはUTF-8のサイズ条件があり、文字列以外の値は整形対象になりません。

モードとインデントの指定は結果に影響しますか?

空の入力では、指定したモードとインデントの情報が変換されずに結果へ反映されます。内容がある場合は、minifyを選んでも処理結果を受け取る前に失敗します。

ツール

GraphQL フォーマッター