Ga naar inhoud
100% lokaal

JSON naar GraphQL SDL

Zet een JSON-document om in GraphQL-typen geschreven in Schema Definition Language.

Invoer
Uitvoer

JSON naar GraphQL SDL

Plak een JSON-object of array van objecten in en deze tool genereert GraphQL-typen geschreven in Schema Definition Language. Het is een snelle manier om een schema te bootstrappen uit een echte API-reactie, een database-export of een voorbeeld-payload, in plaats van elk veld en type met de hand in te typen.

Scalars worden afgeleid uit de JSON-waarden: strings worden String, hele getallen worden Int, decimalen worden Float, en true/false worden Boolean. Een veld genaamd "id" wordt getypeerd als ID wanneer het een string of integer bevat, wat overeenkomt met hoe de meeste GraphQL-API's records identificeren. Velden waarvan de voorbeeldwaarde null is, worden als optioneel gemarkeerd. Alle andere velden krijgen de vereiste marker ("!"). Geneste objecten worden hun eigen benoemde typen, waarnaar vanuit het bovenliggende element wordt verwezen. Structureel identieke geneste objecten worden samengevoegd tot één type in plaats van te worden gedupliceerd. Arrays worden lijsttypen met het elementtype afgeleid uit hun inhoud.

Twee meer opties bepalen de uitvoer: het inschakelen van de aangepaste-scalar optie herkent ISO datum- en datum-tijdstrings en declareert "scalar Date" of "scalar DateTime" in plaats van deze als gewone String te behandelen. Met de keuze "Genereren als" schakelt u tussen een "type" (voor queries) en een "input" (voor mutatie-argumenten). Als u "Query-type opnemen" inschakelt, wordt een kleine Query-type toegevoegd met één veld dat het root-type retourneert, zodat het schema direct in een server of een schema-first tool kan worden geplakt.

Alles wordt lokaal in uw browser uitgevoerd — de JSON die u plakt, wordt nergens geüpload. Kopieer de gegenereerde SDL, download deze als .txt-bestand of stuur deze rechtstreeks naar de invoer van een ander tool om door te gaan met werken.

FAQ

Hoe bepaalt het of een veld vereist is?
Een veld wordt gemarkeerd met "!" (vereist) tenzij de voorbeeldwaarde in de JSON null is, in welk geval het optioneel is.
Hoe worden geneste objecten en lijsten verwerkt?
Elk genest object wordt zijn eigen benoemde GraphQL-type waarnaar vanuit het bovenliggende element wordt verwezen. Identieke geneste vormen worden opnieuw gebruikt als één type. Arrays worden lijsttypen, waarbij het elementtype uit de inhoud van de array wordt bepaald.
Wat doet "ID uit 'id' veld detecteren"?
Wanneer ingeschakeld, wordt elk veld letterlijk genaamd "id" dat een string of geheel getal bevat, getypeerd als GraphQL's ingebouwde ID-scalar in plaats van String of Int.
Kan ik GraphQL-invoertypen in plaats van objecttypen genereren?
Ja. Schakel "Genereren als" over naar "input" om "input Name { … }" blokken te krijgen, nuttig voor mutatie-argumenten. De Query-wrapper wordt alleen voor "type"-uitvoer toegevoegd, omdat een Query-veld geen invoertype kan retourneren.
Wordt mijn JSON ergens geüpload?
Nee. De conversie vindt volledig in uw browser plaats — uw JSON verlaat uw apparaat nooit.