Inmatning

Utdata

Vad är verktyget GraphQL till JSON-exempel?

Att mocka ett GraphQL-API i din testsuite betyder oftast att man skriver fejkdata för hand för varje typ — tråkigt, sprött, och schemat driver bort från dina fixtures inom en eller två sprints. Den här sidan läser ditt GraphQL Schema Definition Language och spottar ut ett JSON-dokument som matchar det. Klistra in din SDL till vänster, så ger den högra panelen dig ett ifyllt JSON-objekt: varje fält i Query-typen ifyllt, listor fyllda med två element, enums satta till sitt första värde och custom scalars som DateTime eller URL mappade till vettiga defaults.

Det laddas ingen parser-dependency in på sidan — SDL-walkern är handskriven, ~600 rader, och täcker varje konstruktion som dyker upp i ett riktigt schema: type, interface, union, enum, input, scalar, list- och non-null-modifierare och självreferenta typer. Utdatan är vanlig JSON enligt RFC 8259, indragen med två mellanslag, redo att klistras in i en fetch-mock eller ett Postman-exempelsvar. Fält som heter email, name, phone, currency eller status får värdeexempel som passar; allt annat faller tillbaka på en generisk "sample text".

Allt händer i din webbläsare. Ditt schema lämnar aldrig sidan, inget nätverksanrop görs och konverteringen är omedelbar.

Så använder du verktyget GraphQL till JSON-exempel

Tre snabba steg. Knapparna som beskrivs nedan är de faktiska knapparna på den här sidan.

1

Klistra in, ladda upp eller läs in ett exempel

Klistra in ett GraphQL-schema i den vänstra Inmatning-panelen — konverteringen sker automatiskt cirka en tredjedels sekund efter att du slutar skriva, så det finns ingen Konvertera-knapp. Klicka på Ladda upp för en .graphql- eller .gql-fil, eller på Exempel för att läsa in ett realistiskt e-handels-Order-schema. En typisk inmatning ser ut så här:

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

Både scheman i serverstil (med type Query { ... }) och fristående typfiler fungerar. Walkern tar Query som rot om den finns, annars första objekttypen. De former som accepteras matchar det som verktyg som graphql-js parsar vid uppstart.

2

Läs JSON-utdatan

Den högra Utdata-panelen renderar JSON-exemplet med två mellanslags indrag. Objekttyper blir objekt. Listor blir tvåelementsarrayer. Enums blir sitt första värde som sträng. Custom scalars får vettiga defaults — DateTime blir en ISO-8601-tidsstämpel, URL blir "https://example.com/...", JSON blir {}. Självreferenta typer (type Person { friends: [Person!]! }) kapas vid djup 4 och avslutas med null, så sidan hänger sig aldrig.

3

Kopiera eller ladda ner

Klicka på Kopiera för att ta JSON till en fixture-fil, mock-server eller fetch-stub. Klicka på Ladda ner för att spara som sample.json. Rensa-knappen i inmatningspanelen återställer dig till ett tomt läge. Konverteringen sker helt på klientsidan — ditt schema lämnar aldrig sidan.

När du faktiskt skulle använda det här

Fixtures för mock-GraphQL-server

Du drar igång en mock-backend med json-graphql-server eller en Apollo Server-mock och behöver en start-JSON-fil i ditt schemas form. Klistra in SDL:n, kopiera utdatan och du är 80% i mål — justera namn och ID:n, skicka iväg fixturen.

Exempelsvar i Postman / Insomnia

Att dokumentera en GraphQL-endpoint i Postman eller Insomnia innebär att fylla i en exempelresponskropp för varje operation. Generera JSON-formen från typen, klistra in i exemplet, redigera värdena så att de matchar testfallet. Slår att skriva nästade objekt för hand från grunden.

Frontend-typutkast

När backend levererar en ny GraphQL-typ behöver frontend ofta en exempel-payload för att koppla upp UI:t innan endpointen är på riktigt. Konvertera schemat till JSON, lägg in i en fixture och bygg komponenterna mot fixturen. Byt till live data när API:t är klart.

Schemautforskning

Att läsa en SDL på 300 rader är okej; att se hur ett riktigt svar ser ut går snabbare. JSON-exemplet gör schemat konkret — du ser direkt vilka fält som är nästade, vilka som är arrayer och var enums bor. Bra som onboarding-stöd för utvecklare som är nya i en tjänst.

Vanliga frågor

Kör det förfrågan mot en riktig server?

Nej. Sidan genererar bara ett exempeldokument som matchar schemats form. Det görs inget nätverksanrop. Om du behöver träffa en riktig GraphQL-endpoint, använd GraphiQL eller någon GraphQL-klient.

Varför stannar min självreferenta typ efter några nivåer?

Det finns ett rekursionstak på djup 4. Ett schema som type Person { friends: [Person!]! } skulle annars generera ett oändligt nästat objekt. Bortom taket blir värdet null, så JSON:en hålls ändlig och snyggt utskrivbar.

Vilken roottyp använder den?

Den letar efter type Query först. Saknas den tar den första objekttypen som definieras i schemat (hoppar över input-typer). Du kan flytta vilken typ som helst till toppen genom att ordna om din SDL.

Hanteras custom scalars?

Ja. Vanliga (DateTime, Date, Time, URL, Email, JSON, BigInt) har vettiga defaults inbyggda. Allt annat faller tillbaka på en generisk placeholder-sträng. Om din scalar ska mappa till något specifikt, redigera utdatan för hand — det är bara JSON.

Är JSON:en giltig mot mitt schema?

Den är form-giltig: varje obligatoriskt fält är ifyllt, typer matchar deklarerad scalar/object/list, enums använder ett verkligt enum-värde. Den är inte semantiskt giltig (mejlen är inte en riktig mejl, order-ID:t är inte ett riktigt ID). Använd som startpunkt för en fixture, inte som ersättning för tester.

Skickas mitt schema till en server?

Nej. Konverteringen körs helt i din webbläsare. Inget laddas upp, inget loggas. Säkert att klistra in interna eller opublicerade scheman.

Andra GraphQL- och JSON-verktyg

Att generera ett exempel är bara en del av GraphQL-flödet. De här verktygen täcker resten: