ForHosting KIT · 開発者向けツール

GraphQLクエリの変数名と型を抽出

GraphQLの文書を貼り付けると、操作ごとに宣言された変数が分かります。例ではFindUserが3つ、Renameが2つの変数を宣言しており、合計5つです。先に構文も確認します。ブラウザで無料で使えます。

  • 無料
  • ブラウザで動作
  • 登録不要
  • データは端末の外に出ません
ご利用方法 ウェブAPIメールTelegramアプリ 近日

このGraphQL変数抽出ツールは、実行可能文書の構文を検査し、各クエリ、ミューテーション、サブスクリプションで宣言された変数を一覧化します。操作種別、任意の操作名、変数名、リストや非Null指定を含む正確な型表記を維持します。入力フォームの生成、クライアント操作のレビュー、連携仕様の文書化、実行前のクエリ確認にご利用いただけます。

宣言と参照を区別できます

GraphQL変数には、操作名の横にある<code>$id: ID!</code>のような宣言と、選択セット内の<code>user(id: $id)</code>のような参照があります。本機能が返すのは宣言だけです。

所有するクエリ、ミューテーション、サブスクリプションごとにまとめるため、別の操作で同じ変数名を宣言しても混在しません。<code>String</code>、<code>ID!</code>、<code>[ID!]!

</code>などの型表記はそのまま保持されます。既定値とディレクティブは構文確認のため解析しますが、結果には含めません。フラグメントも検査しますが、操作変数を宣言できないため出力項目は作りません。

匿名の短縮クエリは、名前がなく変数一覧が空のクエリ操作として表示されます。

決定的な構文検査を行えます

正規表現による抽出は、コメント、文字列、ブロック文字列、入れ子のリスト、オブジェクト既定値、ディレクティブ、フラグメント、別名、複数操作があると不正確になります。このパーサーは文書全体をトークン化し、GraphQLの実行可能文書文法に従います。閉じていない文字列、不正な数値、予期しない文字、空の選択セット、不完全な定義を拒否します。

そのため、ビルドの早い段階で確実な検査として使用できます。ネットワークやスキーマは参照しません。構文と宣言の抽出後、スキーマがある場合は別工程で検証してください。

構造化された結果を組み込めます

各操作には種別、記述されている場合の名前、<code>name</code>と<code>type</code>を持つ<code>variables</code>配列があります。この安定した形式は、入力エディター生成、管理中の操作比較、文書表の作成、新しい必須入力の検出に適しています。操作を分けることで、同名変数による誤った競合を防ぎます。

処理を有限に保つため入力は200,000文字までです。クエリは実行せず、スキーマ、ヘッダー、認証情報、実行値も不要です。構文エラーでは問題のおおよその文字位置を返します。

変数フォームを作成

実行値を収集する前に宣言を読み取り、正しい名前の入力欄を生成できます。

永続化クエリをレビュー

管理中の操作が変更された際に、正確なGraphQL名と型を比較できます。

クライアント操作を文書化

複数操作の文書を種別ごとに整理した一覧へ変換できます。

リストと非Nullの記号は保持されますか?

はい。 ID!、[String!]、[ID!]!などの完全なGraphQL表記を保持します。

複数の操作とフラグメントに対応しますか?

はい。 操作は文書順で返し、フラグメントは検査しますが変数宣言には加えません。

サーバーの型定義と照合しますか?

いいえ。文書がGraphQLとして正しいかを確かめ、宣言を読み取るだけです。サーバーにその項目があるか、変数の型が引数に合うかは、サーバーの型定義を使って別に確認します。

変数の初期値も返されますか?

返されません。初期値やディレクティブは文書が正しい形かを確かめるために読みますが、結果に含めるのは各変数の名前と宣言された型だけです。

名前のない省略形のクエリはどう表示されますか?

名前のないクエリとして、空の変数一覧とともに表示されます。変数を宣言していなくても、操作として結果に残るので見落としません。

型の!や[]もそのまま残りますか?

はい。必須を示す!や、リストを示す[]を含め、宣言どおりの表記を保ちます。たとえばID!やString!は、書かれたとおりの形で返ります。

このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。

POSThttps://api.kit.forhosting.com/dev/graphql-query-variables-extract

Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。

curl -X POST https://api.kit.forhosting.com/dev/graphql-query-variables-extract \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"query":"query FindUser($id: ID!, $withPosts: Boolean = false) { user(id: $id) { name posts @include(if: $withPosts) { title } } }"}'
{
  "query": "query FindUser($id: ID!, $withPosts: Boolean = false) { user(id: $id) { name posts @include(if: $withPosts) { title } } }"
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "dev.graphql_query_variables_extract",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。

1リクエストあたり$0.002

単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。

max_chars200000
HTTPコード意味
401unauthorizedAPIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。
402insufficient_balance残高が不足しています。チャージ後に再度お試しください。
404unknown_type指定されたタスクタイプは存在しません。タイプ名を確認してください。
429rate_limitedリクエストが多すぎます。しばらく待ってから再度お試しください。

決定的な構文検査を行えます

サーバーにフィールドが存在するか、変数型が引数に適合するか、スキーマ依存規則を満たすかは判定できません。

構造化された結果を組み込めます

応答には文書順の<code>operations</code>配列と合計<code>variable_count</code>が含まれます。ブラウザーに貼り付けるか、1項目あたり$0.002でAPIをご利用ください。

GraphQLクエリを実行しますか?

いいえ。文書をローカルで解析し、GraphQLエンドポイントには接続しません。

変数の参照も含まれますか?

いいえ。操作で宣言された変数だけを返し、フィールドや引数内の参照は追加しません。

スキーマに対してフィールドを検証しますか?

いいえ。スキーマなしで構文を検査します。存在や型の互換性は別途検証してください。

API呼び出しの料金はいくらですか?

1項目あたり$0.002です。Web版では同じパーサーをローカル実行します。

KITの完全なドキュメントを見る →