Preskoči na vsebino
100% lokalno

JSON v GraphQL SDL

Pretvorite JSON dokument v GraphQL tipe, napisane v jeziku definicije sheme.

Vhod
Izhod

JSON v GraphQL SDL

Prilepite JSON objekt ali seznam objektov in to orodje bo ustvarilo GraphQL tipe, napisane v jeziku definicije sheme. To je hiter način za zagotovitev sheme iz pravega odgovora API-ja, izvoza podatkovne baze ali vzorca korisnega tovorza, namesto da bi ročno pisali vsako polje in tip.

Skalski tipi se sklepajo iz vrednosti JSON: nizi postanejo String, cela števila postanejo Int, decimalka števila postanejo Float, true/false pa postanejo Boolean. Polje, ki se imenuje "id", je tipiziran kot ID, če vsebuje niz ali celo število, kar se ujema z načinom, kako večina GraphQL API-jev identificira zapise. Polja, katerih vrednost vzorca je null, so označena kot neobvezna; vsa druga polja dobijo marker obaveznosti ("!"). Ugniježđeni objekti postanejo svoji poimenovani tipi, ki se nanašajo na njihovega starša, strukturalno enaki ugniježđeni objekti pa se združijo v en tip namesto da se podvojijo. Nizi postanejo tipski seznami z vrstnim tipom, ki je sklepan iz vsebine matrike.

Dve dodatni možnosti oblikujeta rezultat: omogočanje opcije prilagojenih skalarjev prepozna stringove datuma in datuma-časa ISO in bo deklarirano "scalar Date" ali "scalar DateTime" namesto da bi jih obravnavala kot navadne nize, izbira "Generiraj kot" pa preklopi med "type" (za poizvedbe) in "input" (za argumente mutacij). Omogočanje "Vključi vrsto Query" doda majhen tip Query s enim poljem, ki vrne glavni tip, tako da je shema pripravljena za lepljenje v strežnik ali orodje, ki temelji na shemi.

Vse se izvaja lokalno v vašem brskalniku — JSON, ki ga prilepite, se nikoli ne naloži nikamor. Kopirajte ustvarjeni SDL, ga preuzmite kot datoteko .txt ali ga direktno pošljite v vnos drugega orodja, da nadaljujete z delom.

FAQ

Kako se odloči, ali je polje obvezno?
Polje je označeno z "!" (obvezno) razen če je vrednost vzorca v JSON-u null, v tem primeru ostane opcijsko.
Kako se ravnajo ugniježđeni objekti in seznami?
Vsak ugniježđeni objekt postane njegov lastni poimenovani GraphQL tip, ki se nanaša na svojega starša. Enako oblikovani ugniježđeni objekti se ponovno uporabijo kot en tip. Nizi postanejo seznami z vrstnim tipom, ki je vzet iz vsebine matrike.
Kaj naredi možnost "Zazna ID iz polja 'id'"?
Ko je omogočeno, se katerokoli polje dobesedno pojmenevano "id", ki vsebuje niz ali celo število, tipizira kot vgrajena ID skala GraphQL namesto String ali Int.
Ali lahko generiram GraphQL vhodne tipe namesto vrst objektov?
Da. Preklopite "Generiraj kot" na "input", da dobite bloke input Name { … }, koristne za argumente mutacij. Ovojnica Query se doda le za rezultat "type", saj polje Query ne more vrniti vhodnega tipa.
Ali je moj JSON naložen nekje?
Ne. Pretvarjanje se izvaja povsem v vašem brskalniku — vaš JSON nikoli ne zapusti vašo napravo.