Próbka GraphQL do JSON
Wklej schemat GraphQL, otrzymaj dokument JSON pasujący do typu Query — każde pole wypełnione, listy zapełnione, enumy wybrane
Wejście
Wyjście
Czym jest narzędzie Próbka GraphQL do JSON?
Mockowanie API GraphQL w pakiecie testów zwykle oznacza pisanie ręcznie sztucznych danych dla każdego typu — nudne, kruche, a schemat odjeżdża od fikstur w ciągu jednego, dwóch sprintów. Ta strona czyta twój język definicji schematu GraphQL i wypluwa pasujący do niego dokument JSON. Wklej SDL po lewej, a prawy panel da ci wypełniony obiekt JSON: każde pole typu Query uzupełnione, listy wypełnione dwoma elementami, enumy ustawione na pierwszą wartość, a niestandardowe skalary takie jak DateTime czy URL zmapowane na sensowne wartości domyślne.
Na stronie nie ma załadowanej zależności parsera — walker SDL jest napisany ręcznie, ~600 linii, i obsługuje wszystkie konstrukcje, które pojawiają się w prawdziwym schemacie: type, interface, union, enum, input, scalar, modyfikatory list i non-null oraz typy samoreferencyjne. Wynik to czysty JSON zgodny z RFC 8259, wcięcie dwiema spacjami, gotowy do wrzucenia w fetch mock albo przykładową odpowiedź Postmana. Pola o nazwach email, name, phone, currency czy status dostają pasujące przykładowe wartości; reszta wpada na ogólny "sample text".
Wszystko dzieje się w twojej przeglądarce. Schemat nigdy nie opuszcza strony, nie ma żadnego wywołania sieciowego, a konwersja jest natychmiastowa.
Jak używać narzędzia Próbka GraphQL do JSON
Trzy szybkie kroki. Przyciski opisane poniżej to faktyczne przyciski na tej stronie.
Wklej, wgraj lub wczytaj próbkę
Wklej schemat GraphQL do lewego panelu Wejście — konwersja jest automatyczna około jedną trzecią sekundy po tym, jak przestaniesz pisać, więc nie ma przycisku Konwertuj. Kliknij Wgraj dla pliku .graphql lub .gql, albo Próbka, by wczytać realistyczny schemat e-commerce Order. Typowe wejście wygląda tak:
type Query { order(id: ID!): Order } type Order { id: ID! customer: Customer! items: [OrderItem!]! total: Money! status: OrderStatus! placedAt: DateTime! }Działają zarówno schematy w stylu serwerowym (z type Query { ... }), jak i samodzielne pliki typów. Walker bierze Query jako root, jeśli istnieje, w przeciwnym razie pierwszy typ obiektowy. Akceptowane formy odpowiadają temu, co narzędzia takie jak graphql-js parsują przy starcie.
Czytaj wynik JSON
Prawy panel Wyjście renderuje próbkę JSON z wcięciem dwiema spacjami. Typy obiektowe stają się obiektami. Listy stają się dwuelementowymi tablicami. Enumy stają się swoją pierwszą wartością jako string. Niestandardowe skalary dostają sensowne wartości domyślne — DateTime staje się znacznikiem czasu ISO-8601, URL staje się "https://example.com/...", JSON staje się {}. Typy samoreferencyjne (type Person { friends: [Person!]! }) są przycinane na głębokości 4 i kończą się null, więc strona nigdy się nie zawiesza.
Skopiuj lub pobierz
Kliknij Kopiuj, by zgarnąć JSON do pliku fikstury, mock servera albo fetch stub. Kliknij Pobierz, by zapisać jako sample.json. Przycisk czyść w panelu wejściowym przywraca pusty stan. Konwersja odbywa się w całości po stronie klienta — schemat nigdy nie opuszcza strony.
Kiedy faktycznie tego użyjesz
Fikstury dla mock serwera GraphQL
Stawiasz mock backend z json-graphql-server albo mockiem Apollo Server i potrzebujesz początkowego pliku JSON o kształcie twojego schematu. Wklej SDL, skopiuj wynik i jesteś w 80% gotowy — popraw nazwy i ID, wypuść fiksturę.
Przykładowe odpowiedzi w Postman / Insomnia
Dokumentowanie endpointu GraphQL w Postmanie albo Insomnii oznacza wypełnianie ciała przykładowej odpowiedzi dla każdej operacji. Wygeneruj kształt JSON z typu, wklej do przykładu, edytuj wartości, by pasowały do przypadku testowego. Lepsze niż klepanie zagnieżdżonych obiektów ręcznie od zera.
Szkic typów na frontendzie
Gdy backend wypuszcza nowy typ GraphQL, frontend często potrzebuje przykładowego payloadu, żeby podpiąć UI, zanim endpoint będzie prawdziwy. Skonwertuj schemat do JSON, wrzuć do fikstury i buduj komponenty pod fiksturę. Przełącz na żywe dane, gdy API będzie gotowe.
Eksploracja schematu
Czytanie 300-liniowego SDL jest ok; zobaczenie, jak wygląda prawdziwa odpowiedź, jest szybsze. Próbka JSON robi schemat namacalnym — od razu widać, które pola są zagnieżdżone, które są tablicami i gdzie żyją enumy. Przydatne jako wsparcie onboardingowe dla inżynierów świeżych w danym serwisie.
Częste pytania
Czy wykonuje zapytanie wobec prawdziwego serwera?
Nie. Strona generuje tylko przykładowy dokument pasujący do kształtu schematu. Nie ma żadnego wywołania sieciowego. Jeśli musisz uderzyć w prawdziwy endpoint GraphQL, użyj GraphiQL lub dowolnego klienta GraphQL.
Dlaczego mój typ samoreferencyjny zatrzymuje się po kilku poziomach?
Jest limit rekursji na głębokości 4. Schemat taki jak type Person { friends: [Person!]! } w przeciwnym razie wygenerowałby nieskończenie zagnieżdżony obiekt. Poza limitem wartość staje się null, więc JSON pozostaje skończony i ładnie się drukuje.
Jakiego typu root używa?
Najpierw szuka type Query. Jeśli go brakuje, bierze pierwszy typ obiektowy zdefiniowany w schemacie (pomijając typy input). Możesz wynieść dowolny typ na górę, zmieniając kolejność w SDL.
Czy obsługiwane są niestandardowe skalary?
Tak. Te popularne (DateTime, Date, Time, URL, Email, JSON, BigInt) mają wbudowane sensowne wartości domyślne. Wszystko inne wpada na ogólny string-placeholder. Jeśli twój skalar ma być mapowany na coś konkretnego, edytuj wynik ręcznie — to po prostu JSON.
Czy JSON jest poprawny względem mojego schematu?
Jest poprawny kształtowo: każde wymagane pole jest wypełnione, typy zgadzają się z zadeklarowanym scalar/object/list, enumy używają prawdziwej wartości enum. Nie jest poprawny semantycznie (email nie jest prawdziwym emailem, ID zamówienia nie jest prawdziwym ID). Używaj jako punktu wyjścia dla fikstury, nie jako zamiennika testów.
Czy mój schemat jest wysyłany na serwer?
Nie. Konwersja odbywa się w całości w przeglądarce. Nic się nie wysyła, nic się nie loguje. Bezpiecznie wkleić wewnętrzne lub niewydane schematy.
Inne narzędzia GraphQL i JSON
Wygenerowanie próbki to tylko część przepływu pracy GraphQL. Te narzędzia pokrywają resztę: