Inndata

Utdata

Hva er verktøyet GraphQL til JSON-eksempel?

Å mocke et GraphQL-API i testsuiten din betyr som regel å skrive fake data for hånd for hver type — kjedelig, skjørt, og skjemaet driver bort fra fixturene dine i løpet av en sprint eller to. Denne siden leser ditt GraphQL Schema Definition Language og spytter ut et JSON-dokument som matcher det. Lim inn SDL-en din til venstre, og høyre panel gir deg et utfylt JSON-objekt: hvert felt i Query-typen fylt, lister fylt med to elementer, enums satt til sin første verdi og custom scalars som DateTime eller URL mappet til fornuftige defaultverdier.

Det er ingen parser-avhengighet lastet inn på siden — SDL-walkeren er håndskrevet, ~600 linjer, og dekker hver konstruksjon som dukker opp i et ekte skjema: type, interface, union, enum, input, scalar, list- og non-null-modifikatorer og selvrefererende typer. Utdataen er vanlig JSON i henhold til RFC 8259, innrykket med to mellomrom, klar til å slippes inn i en fetch-mock eller et Postman-eksempelsvar. Felter med navn som email, name, phone, currency eller status får verdieksempler som passer; alt annet faller tilbake på en generisk "sample text".

Alt skjer i nettleseren din. Skjemaet ditt forlater aldri siden, det gjøres ingen nettverkskall, og konverteringen er øyeblikkelig.

Slik bruker du verktøyet GraphQL til JSON-eksempel

Tre raske steg. Knappene som beskrives under er de faktiske knappene på denne siden.

1

Lim inn, last opp eller last inn et eksempel

Lim inn et GraphQL-skjema i det venstre Inndata-panelet — konverteringen er automatisk cirka en tredjedels sekund etter at du slutter å skrive, så det finnes ingen Konverter-knapp. Klikk på Last opp for en .graphql- eller .gql-fil, eller trykk på Eksempel for å laste inn et realistisk e-handels-Order-skjema. Et typisk inndata ser slik ut:

type Query { order(id: ID!): Order } type Order { id: ID! customer: Customer! items: [OrderItem!]! total: Money! status: OrderStatus! placedAt: DateTime! }

Både skjemaer i serverstil (med type Query { ... }) og frittstående typefiler fungerer. Walkeren tar Query som rot hvis den finnes, ellers den første objekttypen. De aksepterte formene matcher det som verktøy som graphql-js parser ved oppstart.

2

Les JSON-utdataen

Det høyre Utdata-panelet rendrer JSON-eksempelet med to mellomroms innrykk. Objekttyper blir til objekter. Lister blir til to-elements-arrayer. Enums blir til sin første verdi som streng. Custom scalars får fornuftige defaultverdier — DateTime blir et ISO-8601-tidsstempel, URL blir "https://example.com/...", JSON blir {}. Selvrefererende typer (type Person { friends: [Person!]! }) kuttes ved dybde 4 og avsluttes med null, så siden aldri henger.

3

Kopier eller last ned

Trykk på Kopier for å hente JSON til en fixture-fil, mock-server eller fetch-stub. Trykk på Last ned for å lagre som sample.json. Tøm-knappen i inndata-panelet setter deg tilbake til en tom tilstand. Konverteringen skjer fullstendig på klientsiden — skjemaet ditt forlater aldri siden.

Når du faktisk ville brukt dette

Mock-GraphQL-server-fixtures

Du fyrer opp en mock-backend med json-graphql-server eller en Apollo Server-mock og trenger en start-JSON-fil som har formen til skjemaet ditt. Lim inn SDL-en, kopier utdataen, og du er 80% i mål — juster navn og ID-er, send fixturen.

Eksempelsvar i Postman / Insomnia

Å dokumentere en GraphQL-endepunkt i Postman eller Insomnia betyr å fylle ut en eksempel-svarkropp for hver operasjon. Generer JSON-formen fra typen, lim inn i eksempelet, rediger verdiene slik at de matcher testcasen. Slår å skrive nestede objekter for hånd fra bunnen.

Frontend-typeutkast

Når backenden lanserer en ny GraphQL-type, trenger frontend ofte et eksempel-payload for å koble opp UI-en før endepunktet er ekte. Konverter skjemaet til JSON, slipp det inn i en fixture og bygg komponentene mot fixturen. Bytt til live data når API-et er klart.

Skjemautforskning

Å lese en SDL på 300 linjer er greit; å se hvordan et ekte svar ser ut går raskere. JSON-eksempelet gjør skjemaet konkret — du ser med en gang hvilke felter som er nestede, hvilke som er arrayer, og hvor enums bor. Nyttig som onboarding-hjelp for utviklere som er nye på en tjeneste.

Vanlige spørsmål

Kjører det spørringen mot en ekte server?

Nei. Siden genererer kun et eksempeldokument som matcher skjemaformen. Det gjøres ingen nettverkskall. Hvis du må treffe en ekte GraphQL-endepunkt, bruk GraphiQL eller en hvilken som helst GraphQL-klient.

Hvorfor stopper den selvrefererende typen min etter noen få nivåer?

Det er en rekursjonsgrense på dybde 4. Et skjema som type Person { friends: [Person!]! } ville ellers generert et uendelig nestet objekt. Forbi grensen blir verdien null, så JSON-en forblir endelig og pent skrivbar.

Hvilken rot-type bruker den?

Den leter etter type Query først. Hvis den mangler, velger den den første objekttypen som er definert i skjemaet (hopper over input-typer). Du kan flytte hvilken som helst type til toppen ved å omorganisere SDL-en din.

Håndteres custom scalars?

Ja. De vanlige (DateTime, Date, Time, URL, Email, JSON, BigInt) har fornuftige defaultverdier innebygget. Alt annet faller tilbake på en generisk placeholder-streng. Hvis scalar-en din skal mappe til noe spesifikt, rediger utdataen for hånd — det er bare JSON.

Er JSON-en gyldig mot skjemaet mitt?

Den er form-gyldig: hvert obligatoriske felt er fylt, typer matcher den deklarerte scalar/object/list, enums bruker en ekte enum-verdi. Den er ikke semantisk gyldig (e-posten er ikke en ekte e-post, ordre-ID-en er ikke en ekte ID). Bruk som startpunkt for en fixture, ikke som erstatning for tester.

Sendes skjemaet mitt til en server?

Nei. Konverteringen kjører fullstendig i nettleseren din. Ingenting lastes opp, ingenting logges. Trygt å lime inn interne eller ikke-utgitte skjemaer.

Andre GraphQL- og JSON-verktøy

Å generere et eksempel er bare én del av GraphQL-arbeidsflyten. Disse verktøyene dekker resten: