Hoppa till innehåll
100% lokalt

JSON till GraphQL SDL

Konvertera ett JSON-dokument till GraphQL-typer skrivna i Schema Definition Language.

Inmatning
Utmatning

JSON till GraphQL SDL

Klistra in ett JSON-objekt eller en array av objekt så härleder verktyget GraphQL-typer skrivna i Schema Definition Language. Det är ett snabbt sätt att få fram ett schema från ett verkligt API-svar, en databasexport eller en exempelpayload, i stället för att skriva varje fält och typ för hand.

Skalärer härleds från JSON-värdena: strängar blir String, heltal blir Int, decimaltal blir Float och true/false blir Boolean. Ett fält som heter "id" typas som ID när det innehåller en sträng eller ett heltal, precis så som de flesta GraphQL-API:er identifierar poster. Fält vars exempelvärde är null markeras som valfria; alla övriga fält får utropstecknet som markerar obligatoriskt. Nästlade objekt blir egna namngivna typer som refereras från föräldern, och strukturellt identiska nästlade objekt slås ihop till en enda typ i stället för att dupliceras. Arrayer blir listtyper där elementtypen härleds ur innehållet.

Ytterligare två inställningar formar utdata: alternativet för egna skalärer känner igen ISO-datum och datum-tid-strängar och deklarerar "scalar Date" eller "scalar DateTime" i stället för att behandla dem som vanlig String, och valet "Generera som" växlar mellan en "type" (för queries) och en "input" (för argument till mutationer). Slår du på "Inkludera Query-typ" läggs en liten Query-typ till med ett fält som returnerar rottypen, så att schemat kan klistras in i en server eller ett schema-first-verktyg som det är.

Allt körs lokalt i din webbläsare — den JSON du klistrar in laddas aldrig upp någonstans. Kopiera den genererade SDL-koden, ladda ner den som en .txt-fil eller skicka den direkt vidare till ett annat verktyg för att arbeta vidare med den.

FAQ

Hur avgör det om ett fält är obligatoriskt?
Ett fält markeras med "!" (obligatoriskt) om inte dess exempelvärde i JSON är null, då är det valfritt.
Hur hanteras kapslade objekt och listor?
Varje kapslat objekt blir sin egen namngivna GraphQL-typ som refereras från det överordnade objektet. Identiska kapslade former återanvänds som en typ. Arrays blir listtyper, med elementtypen härledd från arrayns innehål.
Vad gör "Identifiera ID från 'id' fält"?
När den är aktiverad, typiseras alla fält som bokstavligen heter "id" som innehåller en sträng eller ett heltal som GraphQL:s inbyggda ID-skalär istället för String eller Int.
Kan jag generera GraphQL-indatatyper istället för objekttyper?
Ja. Byt "Generera som" till "input" för att få "input Name { … }" block, användbart för mutationsargument. Query-omslutningen läggs endast till för "type"-utmatning, eftersom ett Query-fält inte kan returnera en indatatyp.
Laddas min JSON upp någonstans?
Nej. Konverteringen körs helt i din webbläsare — din JSON lämnar aldrig din enhet.