Przejdź do treści

JSON na GraphQL SDL

Konwertuj dokument JSON na typy GraphQL napisane w Schema Definition Language.

Wejście
Wynik

JSON na GraphQL SDL

Wklej obiekt JSON lub listę obiektów i narzędzie przeprowadzi je do typów GraphQL napisanych w Schema Definition Language. To szybki sposób na uruchomienie schematu z rzeczywistej odpowiedzi API, eksportu bazy danych lub próbki payload, zamiast ręcznie pisać każde pole i typ.

Skalary są wnioskowane z wartości JSON: ciągi znaków stają się String, liczby całkowite stają się Int, liczby dziesiętne stają się Float a true/false stają się Boolean. Pole nazwane "id" jest typizowane jako ID, gdy zawiera ciąg znaków lub liczbę całkowitą, co odpowiada temu, jak większość API GraphQL identyfikuje rekordy. Pola, których wartość przykładowa to null, są oznaczane jako opcjonalne; każde inne pole otrzymuje obowiązek marker ("!"). Zagnieżdżone obiekty stają się własnymi nazwanymi typami, do których odwołuje się z elementu nadrzędnego, a strukturalnie identyczne zagnieżdżone obiekty są łączy w jeden typ zamiast być duplikowane. Listy stają się typami listy z wnioskowanym typem elementu z zawartości.

Dwie kolejne opcje formują wynik: włączenie opcji skalara niestandardowego rozpoznaje ciągi znaków ISO date i date-time i deklaruje "scalar Date" lub "scalar DateTime" zamiast traktować je jako zwykły String, a wybór "Wygeneruj jako" przepina między "type" (dla zapytań) i "input" (dla argumentów mutacji). Włączenie opcji "Dołącz typ Query" dodaje mały typ Query z jednym polem zwracającym typ główny, więc schemat jest gotów do wklejenia na serwer lub narzędzie oparte na schemacie.

Wszystko działa lokalnie w Twojej przegladarce — JSON, który wklejasz, nigdy nigdzie nie jest wysyłany. Skopiuj wygenerowany SDL, pobierz go jako plik .txt lub weź go bezpośrednio do wejścia innego narzędzia, aby kontynuować pracę.

Częste pytania

Jak się decyduje, czy pole jest wymagane?
Pole jest oznaczone znakiem "!" (wymagane), chyba ze jego wartosc przykladowa w JSON to null, w takim razie pozostaje opcjonalne.
Jak są obsługiwane zagnieżdżone obiekty i listy?
Kazdy zagnieżdzony obiekt stanie sie wlasnym nazwany typem GraphQL, do ktorego odwoluje sie z elementu nadrzednego. Identyczne zagnieżdzene kształty sa ponownie uzywaja jako jeden typ. Listy staja sie typami listy, przy czym typ elementu jest pobierany z zawartosci listy.
Co robi opcja "Rozpoznaj ID z pola 'id'"?
Gdy jest włączona, kazde pole dosłownie nazwane "id", które zawiera ciag znakow lub liczbe całkowita, jest typizowane jako wbudowany skalar ID GraphQL zamiast String lub Int.
Czy moge wygenerowac typy wejscia GraphQL zamiast typów obiektów?
Tak. Przełacz "Wygeneruj jako" na "input" i otrzymasz bloki input Name { … }, przydatne dla argumentów mutacji. Wrapper Query jest dodawany tylko dla wyniku "type", poniewaz pole Query nie może zwrócic typu wejscia.
Czy wysylam mój JSON gdzieś?
Nie. Konwersja odbywa sie całkowicie w przegladarce — Twój JSON nigdy nie opuszcza Twojego urzadzenia.