
GraphQL SDL: Schema online validieren und formatieren
SDL-Syntaxfehler, Schema-Review und Formatierung vor dem Merge — ergänzt den bestehenden GraphQL-Beautifier.
Warum GraphQL-SDL vor dem Merge validieren?
Ein Schema, das nicht parst, blockiert Codegenerierung, lässt den GraphQL-Server nicht starten und macht Reviews zum Rätselraten. Typische Ursachen — fehlende Klammer, unbekannter Typ, vergessener Query-Root — verstecken sich in einem 400-Zeilen-SDL-Diff. Der GraphQL-SDL-Validator von FastMinify führt GraphQL.js buildSchema im Browser aus: Schema-Dokument einfügen, Valid/Invalid-Verdict mit Zeile und Spalte, wenn GraphQL.js sie liefert. Das Formatieren bleibt bei Beautify GraphQL (Prettier). Es gibt keinen eigenen Slug format-graphql. Der Rest des Clusters liegt im API-Tools-Hub. Wer auch REST-Verträge pflegt, kombiniert das mit dem OpenAPI-Validierungsleitfaden.
Ehrliche Grenzen und Review-feste Gewohnheiten
Valid bedeutet: GraphQL.js buildSchema hat das eingefügte SDL akzeptiert. Das ist kein Beweis, dass Ihre API in Produktion korrekt antwortet.
.graphql-Dateien, Includes oder Git-URLsDas Browser-Tool ist die schnelle Schleife vor git push. Teams behalten GraphQL.js, graphql-eslint oder rover in der CI als Merge-Gate.
Query-Typ oder ein eigenes schema { query: … } nutztDie meisten SDL-Vorfälle sind Rename-Reste und fehlende Roots, keine exotischen GraphQL-Features.
Schema-SDL vs. Queries: zwei Dokumente, zwei Tools
Die Schema Definition Language (SDL) beschreibt Typen, Felder und Roots. Sie ist der Vertrag, den Resolver einhalten müssen — keine ausführbare Query. FastMinify prüft diesen Vertrag mit GraphQL.js buildSchema, nicht über einen Live-Server.
Query, Mutation und Subscription, wenn diese Typen existieren.graphql-Dateien per URLEin Operationsdokument (query, mutation, subscription, fragment) ist kein Schema-SDL. Einfügen in den Validator lässt buildSchema scheitern. Formatieren Sie diese Dokumente mit Beautify GraphQL.
buildSchema, keine Query-AusführungGraphQL.js verlangt typischerweise einen Query-Root-Typ, sofern Ihre Schema-Definition keinen anderen Query-Typ nennt. Ein Dokument nur mit type User { … } ohne Query-Root scheitert meist — das ist erwartet, kein FastMinify-Bug.
type Query { hello: String }schema { query: RootQuery } plus type RootQuery { … }Validieren beantwortet „akzeptiert GraphQL.js dieses Schema-SDL?“. Beautify beantwortet „ist dieses GraphQL lesbar?“. Einrückung behebt niemals einen unbekannten Typ.
buildSchema — valid oder invalid, Issues mit Zeile/Spalte wenn vorhandentabWidth 2 oder 4, Tabs, printWidth 80 / 100 / 120Erst validieren, dann formatieren: ein praxisnaher Ablauf
Öffnen Sie den GraphQL-Validator, fügen Sie ein einzelnes Schema-Dokument ein (max. 512 KiB UTF-8) und warten Sie auf das gedebouncte Verdict. Das Ergebnispanel zeigt Valid oder Invalid, den ersten Fehler mit Zeile und Spalte wenn bekannt, eine Copy-Error-Aktion und Schema-Statistiken nach erfolgreichem Parse.
Der GraphQL-Beautifier pretty-printet Schemas und Operationen mit Prettier. Nützlich für Review-Diffs — er ersetzt validate nicht. Optionen: 2 oder 4 Leerzeichen oder Tabs plus Druckbreite. Alle Formatter liegen im Beautify-Tools-Hub.
Ein Teammitglied hat Pet in Animal umbenannt, aber pet(id: ID!): Pet auf Query gelassen. CI oder Server schlagen fehl, mit wenig Kontext im GitHub-Overlay.
Schritt 1: Schema in validate-graphql einfügen
Öffnen Sie validate-graphql. Ein invalid-Verdict mit Unknown type "Pet" (und einer Zeile wenn vorhanden) zeigt auf das veraltete Feld.
Schritt 2: Typnamen korrigieren oder den Typ wiederherstellen
Entweder den Rückgabetyp des Felds auf Animal ändern oder type Pet wieder hinzufügen. Erneut einfügen, bis das Panel ein gültiges Schema zeigt.
Schritt 3: Beautify und committen
Das korrigierte SDL durch beautify-graphql jagen, kopieren oder herunterladen, PR aktualisieren. Reviewer lesen Typen, keinen Einzeiler-Blob.
Ein generiertes oder minifiziert wirkendes Schema landet im Repo. Reviewer sehen nicht, welche Felder auf Query versus Mutation sitzen.
Schritt 1: Zuerst beautify, wenn Sie es nicht einmal lesen können
In beautify-graphql einfügen. Prettier fächert Selections und Typkörper auf. Dieser Schritt beweist nicht, dass das Schema gültig ist.
Schritt 2: Das formatierte Dokument validieren
Das eingerückte SDL in validate-graphql kopieren. Prüfen, dass der Query-Root existiert und jeder benannte Typ definiert ist.
Schritt 3: Die Statistik-Kacheln prüfen
Typanzahl und Root-Feldzahlen helfen, eine leere Query oder verlorene Mutations zu sehen. Dann die formatierte Datei committen.
Fazit
Validieren Sie GraphQL-SDL im Browser mit buildSchema und formatieren Sie danach mit Prettier — lokal, ohne das Schema irgendwohin zu senden. Diese Schleife findet unbekannte Typen und fehlende Query-Roots vor CI oder Gateway. Sie ersetzt keinen laufenden Server, keine Introspection und kein Federation-Compose. Für REST-Verträge bleiben Sie im API-Hub; für lesbare Queries bei Beautify GraphQL.
Verwandte Artikel

Senken Sie Ihre OpenAI-/Anthropic-/Gemini-Rechnung: Input/Output schätzen, Batch und Caching in der Kalkulation aktivieren — geprüfte Tarife, 100 % lokal.

RAG, Multi-Turn-Agenten, System-Prompts: Kontextfenster-Auslastung und verbleibende Reserve vor dem API-Aufruf berechnen.

Ehrlicher Leitfaden: einheitliche Tabellendaten, Workflow konvertieren → zählen → preisen → Kontext; kein JSON/YAML-Ersatz-Manifest.