Sări la conținut
Complet local

JSON la GraphQL SDL

Convertiți un document JSON în tipuri GraphQL scrise în Schema Definition Language.

Intrare
Ieșire

JSON la GraphQL SDL

Lipiți un obiect JSON sau o matrice de obiecte și acest instrument derivă tipuri GraphQL scrise în Schema Definition Language. Este o modalitate rapidă de a initializa un schema dintr-un răspuns API real, o exportare de bază de date sau o încărcătură de exemplu, în loc să tastați fiecare câmp și tip manual.

Scalarii sunt deduși din valorile JSON: șiruri devin String, numere întregi devin Int, zecimale devin Float, iar adevărat/fals devin Boolean. Un câmp numit "id" este tastat ca ID atunci când conține un șir sau un întreg, potrivind modul în care majoritatea API-urilor GraphQL identifică înregistrări. Câmpurile ale căror valoare de exemplu este null sunt marcate ca opționale; toate celelalte câmpuri primesc marcatorul obligatoriu ("!"). Obiectele imbricate devin propriile lor tipuri denumite, referențiate din gând, iar obiectele imbricate identical structurate sunt fuzionate într-un singur tip în loc să fie duplicate. Matricele devin tipuri de listă cu tipul elementului dedus din conținutul acestora.

Doua opțiuni suplimentare dau formă rezultatului: activarea opțiunii scalar personalizat recunoaște șiruri de dată și dată-oră ISO și declară "scalar Date" sau "scalar DateTime" în loc să le trateze ca șir simplu String, iar alegerea "Generare ca" comută între un "type" (pentru interogări) și un "input" (pentru argumente de mutație). Activarea "Includere tip Query" adaugă un mic tip Query cu un câmp care returnează tipul rădăcină, deci schema este gata de lipit pe un server sau pe un instrument condus de schemă.

Totul rulează local în browserul dumneavoastră — JSON-ul pe care îl lipiți nu este trimis nicăiri. Copiați SDL generat, descărcați-l ca fișier .txt sau trimitteți-l direct la intrarea altui instrument pentru a continua lucrul la acesta.

FAQ

Cum decide dacă un câmp este obligatoriu?
Un câmp este marcat cu "!" (obligatoriu) decât dacă valoarea sa de exemplu în JSON este null, caz în care este lăsat opțional.
Cum sunt tratate obiectele imbricate și listele?
Fiecare obiect imbricat devine propriul său tip GraphQL denumit referențiat din gândurile sale. Formele imbricate identice sunt reutilizate ca un tip. Matricele devin tipuri de listă, cu tipul elementului luat din conținutul matricei.
Ce face "Detectare ID din câmpul 'id'"?
Atunci când este activat, orice câmp literal denumit "id" care conține un șir sau un întreg este tastat ca scalar ID încorporat al GraphQL în loc de String sau Int.
Pot genera tipuri de intrare GraphQL în loc de tipuri de obiect?
Da. Comuți "Generare ca" la "input" pentru a obține blocuri input Name { … }, utile pentru argumente de mutație. Wrapper-ul Query este adăugat doar pentru rezultatul "type", deoarece un câmp Query nu poate returna un tip de intrare.
JSON-ul meu este încărcat undeva?
Nu. Conversia rulează în întregime în browserul dumneavoastră — JSON-ul dvs. nu va părăsi niciodată dispozitivul.