ForHosting KIT · 開発者向けツール

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

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

● Beta無料・ブラウザ内で実行
ご利用方法 ウェブAPIメールTelegramアプリ 近日

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

GraphQL変数には、操作名の横にある<code>$id: ID!</code>のような宣言と、選択セット内の<code>user(id: $id)</code>のような参照があります。本機能が返すのは宣言だけです。所有するクエリ、ミューテーション、サブスクリプションごとにまとめるため、別の操作で同じ変数名を宣言しても混在しません。<code>String</code>、<code>ID!</code>、<code>[ID!]!</code>などの型表記はそのまま保持されます。既定値とディレクティブは構文確認のため解析しますが、結果には含めません。フラグメントも検査しますが、操作変数を宣言できないため出力項目は作りません。匿名の短縮クエリは、名前がなく変数一覧が空のクエリ操作として表示されます。

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

正規表現による抽出は、コメント、文字列、ブロック文字列、入れ子のリスト、オブジェクト既定値、ディレクティブ、フラグメント、別名、複数操作があると不正確になります。このパーサーは文書全体をトークン化し、GraphQLの実行可能文書文法に従います。閉じていない文字列、不正な数値、予期しない文字、空の選択セット、不完全な定義を拒否します。そのため、ビルドの早い段階で確実な検査として使用できます。ネットワークやスキーマは参照しません。サーバーにフィールドが存在するか、変数型が引数に適合するか、スキーマ依存規則を満たすかは判定できません。構文と宣言の抽出後、スキーマがある場合は別工程で検証してください。

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

応答には文書順の<code>operations</code>配列と合計<code>variable_count</code>が含まれます。各操作には種別、記述されている場合の名前、<code>name</code>と<code>type</code>を持つ<code>variables</code>配列があります。この安定した形式は、入力エディター生成、管理中の操作比較、文書表の作成、新しい必須入力の検出に適しています。操作を分けることで、同名変数による誤った競合を防ぎます。処理を有限に保つため入力は200,000文字までです。クエリは実行せず、スキーマ、ヘッダー、認証情報、実行値も不要です。ブラウザーに貼り付けるか、1項目あたり$0.002でAPIをご利用ください。構文エラーでは問題のおおよその文字位置を返します。

変数フォームを作成

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

永続化クエリをレビュー

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

このページの機能はすべて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リクエストが多すぎます。しばらく待ってから再度お試しください。

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