Přeskočit na obsah

JSON na GraphQL SDL

Konvertovat JSON dokument na GraphQL typy napsané v Schema Definition Language.

Vstup
Výstup

JSON na GraphQL SDL

Vložte objekt JSON nebo seznam objektů a tento nástroj z něho odvodí typy GraphQL napsané v Schema Definition Language. Je to rychlý způsob, jak inicializovat schéma ze skutečné odpovědi API, exportu databáze nebo vzorky payloadu, místo ručního psaní každého pole a typu.

Skaláry se odvozují z hodnot JSON: řetězce se stanou String, celá čísla se stanou Int, desetinná čísla se stanou Float a true/false se stanou Boolean. Pole pojmenované "id" se typizuje jako ID, když obsahuje řetězec nebo celé číslo, což odpovídá tomu, jak většina GraphQL API identifikuje záznamy. Pole, jejichž vzorka hodnota je null, jsou označena jako volitelná; každé ostatní pole dostane povinný marker ("!"). Vnořené objekty se stanou vlastními pojmenovanými typy, odkazovanými z nadřazeného prvku, a strukturálně totožné vnořené objekty se sloučí do jednoho typu místo duplikace. Seznamy se stanou typy seznamů s odvozením typu prvku z obsahu.

Další dvě možnosti formují výstup: zapnutí možnosti vlastního skaláru rozpozná ISO datumové a datumově-časové řetězce a deklaruje "scalar Date" nebo "scalar DateTime" místo toho, aby je považoval za jednoduchý String, a volba "Vygenerovat jako" přepíná mezi "type" (pro dotazy) a "input" (pro argumenty mutací). Zapnutí možnosti "Zahrnout typ Query" přidá malý typ Query s jedním polem vracejícím kořenový typ, takže schéma je připravena vložit na server nebo nástroj zalomený schéma.

Všechno se spouští lokálně ve vašem prohlížeči — JSON, který vložíte, se nikdy nikam neposílá. Zkopírujte vygenerované SDL, stáhněte si jej jako soubor .txt nebo jej pošlete přímo do vstupu jiného nástroje, abyste pokračovali v práci.

Časté dotazy

Jak se rozhoduje, zda je pole povinné?
Pole je označeno znakem "!" (povinné), pokud jeho vzorka hodnota v JSON není null, v tom případě zůstane volitelné.
Jak se zpracovávají vnořené objekty a seznamy?
Každý vnořený objekt se stane vlastním pojmenovaným typem GraphQL, odkazovaným z nadřazeného prvku. Identické vnořené tvary se znovu používají jako jeden typ. Seznamy se stanou typy seznamů, přičemž typ prvku se vzorkuje z obsahu seznamu.
Co dělá možnost "Rozpoznat ID z pole 'id'"?
Když je povolena, jakékoliv pole doslova pojmenované "id", které obsahuje řetězec nebo celé číslo, se typizuje jako vstavany ID skalár GraphQL namísto String nebo Int.
Mohu vygenerovat typy vstupu GraphQL místo typů objektů?
Ano. Přepněte "Vygenerovat jako" na "input" a obdržíte bloky input Name { … }, užitečné pro argumenty mutací. Wrapper Query se přidává pouze pro výstup "type", protože pole Query nemůže vracet typ input.
Posílám někam svůj JSON?
Ne. Konverze probíhá zcela ve vašem prohlížeči — váš JSON nikdy neopustí vaše zařízení.