Converti JSON in Schema GraphQL Online
Genera schemi GraphQL da JSON in automatico, direttamente nel tuo browser.
A cosa serve
Da JSON a schema GraphQL
Compatibile con Apollo Server
Schema pronto per Apollo Server, GraphQL Yoga, Pothos, Nexus o qualsiasi implementazione GraphQL.
100% privato
Il tuo JSON API viene elaborato solo nel tuo browser. Le strutture di dati sensibili non lasciano mai il tuo dispositivo.
Tipi corretti
Rileva String, Int, Float, Boolean e ID. Gli oggetti annidati generano i propri tipi. Gli array come liste [Tipo].
Istantaneo
Schema GraphQL pronto in millisecondi. Nessuna registrazione, nessuna attesa, nessun limite.
Come funziona
Tre passaggi, senza complicazioni
Incolla il tuo JSON
Inserisci qualsiasi oggetto JSON. Lo strumento analizza la struttura e genera i tipi GraphQL corrispondenti.
Schema GraphQL generato
Ottieni tipi GraphQL con tutti i campi correttamente tipizzati: String, Int, Float, Boolean e ID. Gli oggetti annidati generano i propri tipi.
Copia e usa in Apollo Server
Copia lo schema e incollalo nel tuo server GraphQL (Apollo Server, GraphQL Yoga, Pothos) come punto di partenza.
FAQ
Hai delle domande?
GraphQL e un linguaggio di query per API sviluppato da Facebook (ora Meta) nel 2012 per uso interno e pubblicato come specifica open source nel 2015. E stato creato per risolvere i limiti di REST nelle applicazioni mobile: over-fetching (ricevere piu dati del necessario), under-fetching (dover fare piu richieste) e la mancanza di un contratto tipizzato. La prima implementazione era nel client iOS di Facebook. Oggi GraphQL e usato da GitHub, Twitter, Shopify, Airbnb, Pinterest e migliaia di aziende. La specifica e mantenuta dalla GraphQL Foundation (parte della Linux Foundation).
In GraphQL, type definisce la struttura dei dati che il server puo restituire (nelle query e nelle mutation), mentre input definisce la struttura dei dati che il client puo inviare (argomenti delle mutation). Ad esempio, type User { id: ID!, name: String!, email: String! } definisce l'oggetto User restituibile, mentre input CreateUserInput { name: String!, email: String! } definisce i campi accettati da una mutation createUser. I type possono avere resolver che calcolano i campi dinamicamente; gli input sono semplici contenitori di dati. Questo strumento genera type per modellare le risposte JSON esistenti.
GraphQL definisce 5 tipi scalari primitivi nella specifica: String (testo UTF-8), Int (intero con segno a 32 bit), Float (decimale a doppia precisione), Boolean (true o false) e ID (identificatore unico, rappresentato come String o Int). I server GraphQL possono definire scalari personalizzati aggiuntivi: Date, DateTime, URL, Email, JSON, UUID e molti altri. Ad esempio, il pacchetto graphql-scalars per Node.js offre oltre 50 scalari personalizzati. Questo strumento usa i 5 scalari standard per la massima compatibilita.
In GraphQL, ogni oggetto annidato nel JSON diventa un tipo separato. Se il JSON contiene {order: {product: {id: 1, name: Widget}}}, vengono generati: type RootType { order: Order }, type Order { product: Product }, type Product { id: Int, name: String }. Questo riflette la natura dello schema GraphQL: tutti i tipi sono nominati e riutilizzabili. Lo stesso tipo Product potrebbe apparire in piu tipi padre. Gli array di oggetti sono rappresentati come [Product] (lista di Product).
Un resolver e una funzione che sa come recuperare i dati per un campo specifico dello schema. In Apollo Server, ogni campo di ogni tipo puo avere un resolver. Se non ne viene definito nessuno, Apollo usa il DefaultFieldResolver che restituisce semplicemente la proprieta con lo stesso nome dell'oggetto padre. I resolver permettono ai dati di provenire da piu sorgenti: database, un'altra API, cache o calcolo in tempo reale. Lo schema GraphQL (generato da questo strumento) definisce il contratto; i resolver implementano come soddisfarlo.
Adozione di GraphQL, Apollo Server, schema-first vs code-first e migrazione da REST a GraphQL
GraphQL e stato reso open source da Facebook nel luglio 2015 e ha generato rapidamente un ecosistema vivace. Apollo GraphQL (fondata nel 2016) ha creato Apollo Server e Apollo Client, diventando l'implementazione di riferimento. Nel 2018, GitHub ha migrato la sua API pubblica da REST v3 a GraphQL v4, un passo che ha validato GraphQL per API in produzione su larga scala. La GraphQL Foundation e stata costituita nel 2019 sotto la Linux Foundation per standardizzare la specifica. Nel 2024, GraphQL e la seconda specifica API piu utilizzata dopo REST, presente nella maggior parte delle startup e in molte aziende Fortune 500.
Esistono due approcci principali per costruire API GraphQL: schema-first e code-first. Nello schema-first, si definisce prima lo schema SDL (Schema Definition Language) e poi si implementano i resolver. E l'approccio originale e piu trasparente: il contratto API e visibile e modificabile come testo. Nel code-first, si definisce lo schema attraverso il codice (TypeScript nel caso di Nexus o Pothos): i tipi vengono definiti come oggetti JavaScript o TypeScript e lo schema SDL viene generato automaticamente. Il code-first e preferito quando si cerca una type-safety end-to-end con TypeScript. Questo strumento genera SDL (schema-first).
La migrazione da REST a GraphQL e un processo graduale che molte aziende affrontano con il pattern BFF (Backend For Frontend): invece di sostituire le API REST esistenti, si aggiunge uno strato GraphQL che aggrega piu endpoint REST. Questo pattern, reso popolare da Netflix e Airbnb, permette un'adozione incrementale di GraphQL senza interrompere i servizi esistenti. GraphQL Federation (Apollo) va oltre: consente di comporre piu servizi GraphQL in un grafo unificato, abilitando architetture supergraph in cui ogni microservizio espone il proprio subgraph.