Esempio GraphQL a JSON
Incolla uno schema GraphQL, ottieni un documento JSON che rispetta il tipo Query — ogni campo popolato, liste riempite, enum scelti
Input
Output
Cos'è lo strumento Esempio GraphQL a JSON?
Mockare un'API GraphQL nella tua suite di test in genere significa scrivere a mano dati finti per ogni tipo — noioso, fragile, e lo schema si scolla dalle tue fixture in uno o due sprint. Questa pagina legge il tuo linguaggio di definizione dello schema GraphQL ed emette un documento JSON che gli corrisponde. Incolla l'SDL a sinistra e il pannello a destra ti restituisce un oggetto JSON popolato: ogni campo del tipo Query riempito, liste riempite con due elementi, enum impostati al loro primo valore e scalari personalizzati come DateTime o URL mappati a default sensati.
Non c'è nessuna dipendenza di parser caricata nella pagina — il walker SDL è scritto a mano, ~600 righe, e copre ogni costrutto che spunta in uno schema reale: type, interface, union, enum, input, scalar, modificatori di lista e non-null e tipi auto-referenziali. L'output è JSON puro secondo l'RFC 8259, indentato a due spazi, pronto da incollare in un mock di fetch o in una risposta di esempio Postman. I campi chiamati email, name, phone, currency o status ricevono campioni di valore che ci stanno; tutto il resto cade su un generico "sample text".
Tutto succede nel tuo browser. Il tuo schema non lascia mai la pagina, nessuna chiamata di rete viene fatta e la conversione è istantanea.
Come usare lo strumento Esempio GraphQL a JSON
Tre passi veloci. I bottoni descritti sotto sono i bottoni reali di questa pagina.
Incolla, carica o carica un esempio
Incolla uno schema GraphQL nel pannello Input a sinistra — la conversione è automatica circa un terzo di secondo dopo che smetti di scrivere, quindi non c'è un bottone Converti. Clicca Carica per un file .graphql o .gql, oppure Esempio per caricare uno schema realistico di Order e-commerce. Un input tipico si presenta così:
type Query { order(id: ID!): Order } type Order { id: ID! customer: Customer! items: [OrderItem!]! total: Money! status: OrderStatus! placedAt: DateTime! }Funzionano sia gli schemi in stile server (con type Query { ... }) sia i file di tipi standalone. Il walker prende Query come radice se esiste, altrimenti il primo tipo oggetto. Le forme accettate combaciano con quelle che strumenti come graphql-js parsano all'avvio.
Leggere l'output JSON
Il pannello Output a destra mostra il campione JSON con indentazione a due spazi. I tipi oggetto diventano oggetti. Le liste diventano array di due elementi. Gli enum diventano il loro primo valore come stringa. Gli scalari personalizzati ricevono default sensati — DateTime diventa un timestamp ISO-8601, URL diventa "https://example.com/...", JSON diventa {}. I tipi auto-referenziali (type Person { friends: [Person!]! }) sono limitati a profondità 4 e troncati con null, così la pagina non si pianta mai.
Copia o scarica
Clicca Copia per prenderti il JSON per un file fixture, un mock server o uno stub di fetch. Clicca Scarica per salvarlo come sample.json. Il bottone clear nel pannello di input ti rimette allo stato vuoto. La conversione avviene interamente client-side — il tuo schema non lascia mai la pagina.
Quando lo useresti davvero
Fixture per server GraphQL mock
Stai tirando su un backend mock con json-graphql-server o un mock Apollo Server e ti serve un file JSON di partenza che abbia la forma del tuo schema. Incolla l'SDL, copia l'output e sei all'80% — sistema nomi e ID, spedisci la fixture.
Risposte di esempio Postman / Insomnia
Documentare un endpoint GraphQL in Postman o Insomnia significa riempire un body di risposta di esempio per ogni operazione. Genera la forma JSON dal tipo, incollala nell'esempio, modifica i valori per matchare il caso di test. Meglio che scrivere a mano oggetti annidati da zero.
Bozza di tipi frontend
Quando il backend rilascia un nuovo tipo GraphQL, il frontend spesso ha bisogno di un payload di esempio per cablare la UI prima che l'endpoint sia reale. Converti lo schema in JSON, mettilo in una fixture e costruisci i componenti contro la fixture. Passa ai dati live quando l'API è pronta.
Esplorazione dello schema
Leggere un SDL di 300 righe va bene; vedere com'è una risposta vera è più veloce. Il campione JSON rende lo schema concreto — vedi subito quali campi sono annidati, quali sono array e dove vivono gli enum. Aiuto utile per l'onboarding di ingegneri nuovi su un servizio.
Domande frequenti
Esegue la query contro un server reale?
No. La pagina genera solo un documento di esempio che rispetta la forma dello schema. Non c'è nessuna chiamata di rete. Se devi colpire un vero endpoint GraphQL, usa GraphiQL o un qualsiasi client GraphQL.
Perché il mio tipo auto-referenziale si ferma dopo qualche livello?
C'è un limite di ricorsione a profondità 4. Uno schema come type Person { friends: [Person!]! } altrimenti genererebbe un oggetto annidato all'infinito. Oltre il limite il valore diventa null, così il JSON resta finito e ben stampabile.
Quale tipo radice usa?
Cerca type Query per primo. Se manca, prende il primo tipo oggetto definito nello schema (saltando i tipi input). Puoi portare in cima qualsiasi tipo riordinando il tuo SDL.
Gli scalari personalizzati sono gestiti?
Sì. Quelli comuni (DateTime, Date, Time, URL, Email, JSON, BigInt) hanno default sensati incorporati. Tutto il resto cade su una stringa placeholder generica. Se il tuo scalare deve mappare a qualcosa di specifico, modifica l'output a mano — è solo JSON.
Il JSON è valido rispetto al mio schema?
È valido come forma: ogni campo obbligatorio è riempito, i tipi quadrano con il loro scalare/oggetto/lista dichiarato, gli enum usano un valore di enum reale. Non è semanticamente valido (l'email non è una vera email, l'ID dell'ordine non è un vero ID). Usalo come punto di partenza per fixture, non come sostituto dei test.
Il mio schema viene mandato a un server?
No. La conversione gira interamente nel tuo browser. Niente viene caricato, niente viene loggato. Puoi incollare schemi interni o non rilasciati in tutta sicurezza.
Altri strumenti GraphQL e JSON
Generare un esempio è solo una parte del workflow GraphQL. Questi strumenti coprono il resto: