GraphQL Fixer
Reparera trasig GraphQL SDL — saknade kolon, dubbla fält, obalanserade klamrar
Vad är GraphQL Fixer?
Om du någonsin har klistrat in ett GraphQL-schema i ett verktyg och fått tillbaka Syntax Error: Expected ":", found Name, eller sett en Schema Registry-diff falla för att någon glömt ett kolon efter ett fältnamn, känner du smärtan. SDL är obarmhärtig — ett enda saknat skiljetecken och hela dokumentet vägrar parsa. Det här verktyget reparerar de vanliga felen: saknade kolon efter fältnamn, dubbla fält i en type, obalanserade klamrar, lösa kommatecken, felstavade scalar-referenser. Klistra in det trasiga schemat i den vänstra editorn, klicka på den gröna Fix GraphQL!!-knappen, och en ren SDL kommer tillbaka till höger.
Reparationen följer GraphQL October 2021-specifikationen för type-, field- och argument-grammatik. Grammatiken är liten men strikt — se officiella Schemas and Types-introduktionen för hela regeluppsättningen. Fixern normaliserar strukturen utan att röra dina fältnamn, types eller directives, så diffen mot ditt registry förblir ren. Vill du dubbelkolla utdatan kan du köra den genom validatorn i Apollo Server-schemats dokumentation eller köra den genom referens-parsern som följer med graphql-js.
Schemat skickas till en liten AI-tjänst som har fått instruktion att bara reparera syntax — aldrig hitta på, byta namn eller ta bort dina fält. Den reparerade SDL:en kommer tillbaka som ren text, klar att klistra in i ditt projekt. Inget loggas på vår sida.
Så använder du GraphQL Fixer
Tre steg. Varje steg använder de faktiska knapparna på sidan.
Klistra in trasig SDL eller ladda exemplet
Släpp din trasiga GraphQL SDL i den vänstra editorn. Klicka Exempel-GraphQL för att ladda ett medvetet trasigt Order/Customer-schema med samma sorts fel som verktyget hanterar — saknade kolon, ett dubbelt fält, en saknad avslutande klammer.
type Order {
id: ID!
placedAt DateTime!
total Money!
}Fixern hittar inte på fält du inte skrivit. Den reparerar bara syntax som GraphQL-grammatiken avvisar. För namngivnings- och designkonventioner ovanpå giltig syntax är GraphQL best-practices-guiden värd en läsning.
Klicka Fix GraphQL!!
Tryck på den gröna knappen. Fixern läser den trasiga SDL:en, identifierar struktur- och interpunktionsfelen och skriver om dokumentet. En laddningsindikator visas medan den arbetar. Båda editorerna använder SDL-syntaxmarkering så du kan jämföra före och efter sida vid sida.
Kopiera det rensade schemat
Den högra panelen visar den reparerade SDL:en. Fältnamn, types, beskrivningar och directives är oförändrade — bara syntaxfelen är fixade. Kopiera utdatan och klistra in den i din schema.graphql-fil eller ditt registry.
När du faktiskt skulle använda det
Städa upp handredigerade scheman
Redigerade en stor schema.graphql för hand och missade ett kolon mellan placedAt och DateTime!? Felmeddelandet säger bara "Expected :" med ett radnummer. Fixern lägger tillbaka kolonet utan att du jagar fält för fält.
Fixa AI-genererad SDL
Bett en LLM ta fram ett schema för en ny feature och fått tillbaka ett dubbelt fält, ett kommatecken där det skulle vara en klammer och ett oparat {. Klassiskt fel. Klistra in, klicka Fix, få ett parsbart schema tillbaka utan att skriva om.
Återskapa scheman från loggar
Plockade ett SDL-fragment ur en loggrad där det var inlindat i escapes eller hade tappat radbrytningarna? Fixern normaliserar strukturen så att det återskapade schemat verkligen parsar igen.
Pre-flight för Schema Registry
Innan du pushar en ändring till ett federerat registry, kör SDL:en genom fixern för att fånga interpunktionsfel som skulle blockera diffen. Sparar dig en runda där registry:t avvisar uppladdningen.
Vanliga frågor
Vilka sorters fel reparerar den?
Saknade kolon mellan ett fältnamn och dess typ (det vanligaste felet), dubbla fält i samma type, saknade eller överflödiga avslutande klamrar, lösa kommatecken i input-objects och oparade hakparenteser kring list-typer. Den hittar inte på fält, types eller arguments — den reparerar bara syntax som parsern avvisar.
Ändrar den mina fältnamn eller types?
Nej. Fältnamn, scalar-namn, type-namn, beskrivningar och directives passerar oförändrade. Fixern rör bara strukturell syntax — namnen du skrev förblir exakt som du skrev dem.
Stödjer den anpassade scalars och directives?
Ja. scalar Money, scalar DateTime, anpassade @auth- eller @deprecated-directives — allt bevaras. Fixern validerar inte att en anpassad scalar är registrerad på din server, bara att SDL:en parsar.
Och federerade subgraphs (Apollo Federation)?
Federation-directives (@key, @external, @requires) passerar oförändrade. Fixern är ett rent syntax-reparationslager — den kör inte federation-composition. Kör den rensade utdatan genom ditt registrys composition-steg efteråt.
Skickas mitt schema till en server?
Ja — fixen körs i en liten backend-tjänst eftersom språkmodellen är hostad där. Vi loggar inte indatan och svaret returneras direkt till din webbläsare. Det finns en gräns på 64 KB per request.
Producerar den alltid ett parsbart schema?
För de vanliga felen ovan, ja. Om indatan saknar så mycket struktur att den ursprungliga avsikten är otydlig (till exempel en helt borttagen type-kropp) kan utdatan flagga ett fel istället för att gissa. Laga då det uppenbara hålet för hand och kör resultatet igen.
Andra GraphQL-verktyg
Reparation är en del av ett GraphQL-flöde. Dessa verktyg täcker resten: