Konwertuj dane JSON na schemat GraphQL — Numio
Generuje typy obiektów GraphQL SDL z przykładowego JSON. Korzeń staje się AutogeneratedMainType, każdy zagnieżdżony obiekt lub tablica obiektów staje się typem nazwanym, a wszystkie elementy tablicy są scalane w jeden typ.
Rysowanie typów opakowania GraphQL wokół istniejącego punktu końcowego REST na podstawie jednej z jego odpowiedzi.
JSON
GraphQL
Kiedy go używać
- Rysowanie typów opakowania GraphQL wokół istniejącego punktu końcowego REST na podstawie jednej z jego odpowiedzi.
- Pobieranie schematu początkowego dla próbnego serwera lub prototypu pierwszego schematu z przykładowych danych.
Jak używać
- Wklej obiekt JSON lub tablicę obiektów połączonych w jeden typ główny do lewego edytora lub użyj przycisku ładowania pliku, aby otworzyć plik UTF-8.
- Sprawdź wygenerowane typy: nazwy pochodzą z kluczy (posts staje się Posts), a skalary są mapowane na String, Int, Float lub Boolean.
- Skopiuj SDL, a następnie dodaj ! dla wymaganych pól zmień pola identyfikatora na ID i zmień nazwę AutogeneratedMainType.
Obiekt JSON
{
"id": "u_1",
"name": "Ada",
"age": 36,
"score": 9.5,
"nickname": null,
"tags": ["math"],
"address": { "city": "London" },
"posts": [{ "id": 7, "title": "Notes" }]
}Schemat GraphQL (SDL)
type AutogeneratedMainType {
id: String
name: String
age: Int
score: Float
nickname: String
tags: [String]
address: Address
posts: [Posts]
}
type Address {
city: String
}
type Posts {
id: Int
title: String
}Szczegóły i ograniczenia
Pola są scalane we wszystkich elementach tablicy. tablice o wartości null i puste stają się Stringami i [Stringami]; Int zmieszany z Float staje się Float, a inne konflikty wracają do String.
Nazwy typów pochodzą z kluczy (posts staje się Posts). Jeśli ten sam klucz zawiera obiekty o różnych strukturach, późniejszy typ otrzymuje nazwę od rodzica (np. AB), zamiast nadpisywać poprzedni.
Nie są generowane ! (non-null), ID, typ Query ani typy input. Liczby całkowite poza zakresem 32-bitowym otrzymują typ Float, ponieważ GraphQL Int jest 32-bitowy.
Działa w przeglądarce, a wynik jest sformatowany za pomocą Prettier; niepoprawny JSON pokazuje błąd analizy.
FAQ
Czy mogę przekonwertować tablicę JSON w katalogu głównym?
Tak, jeśli zawiera obiekty: wszystkie elementy są scalane w AutogeneratedMainType, zatem uwzględniane są pola, które pojawiają się tylko w niektórych elementach. Tablica główna zawierająca zwykłe wartości jest odrzucana, ponieważ nie zawiera pól.
Dlaczego moje pole identyfikatora ma wartość String zamiast ID?
Typy wynikają tylko z wartości JSON: tekstowe id staje się String, a liczba Int. Ręcznie zmień typ na ID:.
Jak wpisuje się wartości null?
Jako String, ponieważ wartość null nie ma typu. Zastąp ją rzeczywistą wartością próbki, jeśli pole jest liczbą lub obiektem.