Namen und Typen von GraphQL-Variablen extrahieren
Fügen Sie ein GraphQL-Dokument ein und erhalten Sie die deklarierten Variablen je Operation: FindUser deklariert id als ID!, filters als [UserFilter!] und limit als Int, Rename deklariert id und name, insgesamt fünf Variablen. Die Syntax wird vorher geprüft. Kostenlos in Ihrem Browser.
- Kostenlos
- Läuft in Ihrem Browser
- Ohne Anmeldung
- Ihre Daten bleiben auf Ihrem Gerät
Im Browser ausführen – kostenlos
Dieser GraphQL-Variablenextraktor liest ein ausführbares Dokument, prüft dessen Syntax und listet die Variablen jeder Abfrage, Mutation oder Subscription auf. Das Ergebnis bewahrt die Operationsart, den optionalen Operationsnamen sowie Namen und exakte Typnotation jeder Variablen einschließlich Listen und Nicht-null-Markierungen. Damit können Sie Eingabeformulare erzeugen, Client-Operationen prüfen, Integrationen dokumentieren oder Abfragetext vor der Ausführung zuverlässig kontrollieren.
Unterscheiden Sie Deklarationen von Verwendungen
GraphQL-Variablen erscheinen als Deklaration wie <code>$id: ID! </code> neben dem Operationsnamen und als Verwendung wie <code>user(id: $id)</code> im Auswahlblock. Diese Funktion gibt ausschließlich Deklarationen zurück.
Sie ordnet sie der jeweiligen Abfrage, Mutation oder Subscription zu, sodass gleiche Namen in verschiedenen Operationen nicht vermischt werden. Die wichtige Typnotation bleibt erhalten, etwa <code>String</code>, <code>ID! </code> oder <code>[ID!]!
</code>. Standardwerte und Direktiven werden zur Syntaxprüfung analysiert, jedoch nicht ausgegeben. Fragmente werden ebenfalls geprüft, erzeugen aber keine Einträge, da sie keine Operationsvariablen deklarieren. Eine anonyme Kurzabfrage erscheint als namenlose Query-Operation mit leerer Variablenliste.
Nutzen Sie eine deterministische Syntaxprüfung
Reguläre Ausdrücke werden bei Kommentaren, Zeichenketten, Block-Strings, verschachtelten Listen, Objektvorgaben, Direktiven, Fragmenten, Aliasen und mehreren Operationen unzuverlässig. Dieser Parser zerlegt das gesamte Dokument in Token und folgt der ausführbaren GraphQL-Grammatik. Er weist nicht abgeschlossene Strings, ungültige Zahlen, unerwartete Zeichen, leere Auswahlblöcke und unvollständige Definitionen zurück.
Das Ergebnis eignet sich daher als frühe Build-Prüfung.
Binden Sie das strukturierte Ergebnis ein
Jede Operation nennt ihre Art, bei Angabe ihren Namen und ein Array <code>variables</code> mit Datensätzen aus <code>name</code> und <code>type</code>. Diese stabile Form unterstützt Eingabeeditoren, Versionsvergleiche, Dokumentationstabellen und die Erkennung neuer Pflichtwerte. Getrennte Operationen vermeiden falsche Konflikte bei wiederholten Namen.
Die Eingabe ist auf 200,000 Zeichen begrenzt, damit die Verarbeitung beschränkt bleibt. Bei einem Fehler nennt die Antwort die ungefähre Zeichenposition.
Anwendungsfälle
Variablenformular erstellen
Lesen Sie Deklarationen aus und erzeugen Sie passende Felder, bevor Laufzeitwerte erfasst werden.
Persistierte Abfragen prüfen
Vergleichen Sie genaue GraphQL-Namen und -Typen nach Änderungen an versionierten Operationen.
Client-Operationen dokumentieren
Wandeln Sie ein Dokument mit mehreren Operationen in ein gruppiertes Verzeichnis um.
Häufige Fragen
Wird die GraphQL-Abfrage ausgeführt?
Nein. Das Dokument wird lokal analysiert; ein GraphQL-Endpunkt wird nie kontaktiert.
Werden Verwendungen von Variablen aufgenommen?
Nein. Nur Deklarationen werden ausgegeben; Referenzen sind keine weiteren Deklarationen.
Bleiben Listen- und Nicht-null-Markierungen erhalten?
Ja. ID!, [String!] und [ID!]! behalten ihre vollständige GraphQL-Notation.
Sind mehrere Operationen und Fragmente möglich?
Ja. Operationen bleiben geordnet; Fragmente werden geprüft, fügen aber keine Deklarationen hinzu.
Prüft das Werkzeug meine Abfrage gegen die Typen meines Servers?
Nein. Es prüft nur, ob das Dokument gültiges GraphQL ist, und liest die Deklarationen. Ob Ihr Server eine bestimmte Angabe anbietet oder ein Variablentyp zu einem Argument passt, klären Sie separat mit der Typbeschreibung des Servers.
Wie erscheint eine anonyme Kurzform-Abfrage?
Als Query ohne Namen und mit leerer Variablenliste. So bleibt sie im Ergebnis sichtbar, auch wenn sie keine Variablen deklariert und keinen eigenen Namen trägt.
Verwandte Tools
Für Entwickler — API-Zugang
Alles auf dieser Seite ist auch per API verfügbar. Dieser Abschnitt richtet sich an Teams, die es in ihre eigenen Systeme einbinden möchten; alle anderen nutzen einfach das Tool oben.
Endpunkt
Authentifizierung per Bearer-Token. Ein einziger POST stellt die Aufgabe in die Warteschlange; das Ergebnis erhalten Sie per Webhook oder über einen signierten Link.
Aufruf aus Ihrem Stack
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 } } }"}'const res = await fetch("https://api.kit.forhosting.com/dev/graphql-query-variables-extract", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"query": "query FindUser($id: ID!, $withPosts: Boolean = false) { user(id: $id) { name posts @include(if: $withPosts) { title } } }"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev/graphql-query-variables-extract",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"query": "query FindUser($id: ID!, $withPosts: Boolean = false) { user(id: $id) { name posts @include(if: $withPosts) { title } } }"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev/graphql-query-variables-extract", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"query":"query FindUser($id: ID!, $withPosts: Boolean = false) { user(id: $id) { name posts @include(if: $withPosts) { title } } }"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"query":"query FindUser($id: ID!, $withPosts: Boolean = false) { user(id: $id) { name posts @include(if: $withPosts) { title } } }"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev/graphql-query-variables-extract", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Beispiel-Anfrage
{
"query": "query FindUser($id: ID!, $withPosts: Boolean = false) { user(id: $id) { name posts @include(if: $withPosts) { title } } }"
}Beispiel-Antwort
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev.graphql_query_variables_extract",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}Die API arbeitet asynchron: Sie erhalten sofort eine task_id. Polling ist mit 1 Anfrage pro Sekunde erlaubt.
Preis
Der Preis steht auf der Seite – keine Tokens, keine Credits. Fehlgeschlagene Aufgaben werden nicht berechnet.
Limits
max_chars | 200000 |
Fehler
| HTTP | Code | Bedeutung |
|---|---|---|
401 | unauthorized | Der API-Schlüssel fehlt oder ist ungültig – prüfen Sie den Authorization-Header (Bearer). |
402 | insufficient_balance | Ihr Guthaben reicht für diese Aufgabe nicht aus – Aufladungen verfallen nicht. |
404 | unknown_type | Unbekannter Aufgabentyp – prüfen Sie das Feld „type“ gegen den Katalog. |
429 | rate_limited | Zu viele Anfragen – warten Sie kurz; Polling ist mit 1 Anfrage pro Sekunde erlaubt. |
Technische Hinweise
Nutzen Sie eine deterministische Syntaxprüfung
Weder Netzwerk noch Schema werden abgefragt. Deshalb kann die Funktion nicht feststellen, ob ein Feld auf Ihrem Server existiert, ein Variablentyp zu einem Argument passt oder schemaabhängige Regeln erfüllt sind. Verwenden Sie sie für Syntax und Deklarationsermittlung und führen Sie anschließend bei vorhandenem Schema eine getrennte Schemavalidierung durch.
Binden Sie das strukturierte Ergebnis ein
Die Antwort enthält das Array <code>operations</code> in Dokumentreihenfolge und die Summe <code>variable_count</code>. Es wird keine Abfrage ausgeführt; Schema, Header, Zugangsdaten und Laufzeitwerte sind unnötig. Sie können das Dokument im Browser einfügen oder die API für $0.002 je Element aufrufen.
Technische Fragen
Werden Felder gegen mein Schema validiert?
Nein. Die Syntaxprüfung erfolgt ohne Schema; Existenz und Kompatibilität benötigen einen weiteren Schritt.
Was kostet ein API-Aufruf?
Jedes Element kostet $0.002. Die Webversion führt denselben Parser lokal aus.