Перейти до вмісту

JSON у GraphQL SDL

Перетворіть JSON-документ у типи GraphQL, написані мовою опису схеми.

Введення
Вихід

JSON у GraphQL SDL

Вставте об'єкт JSON або масив об'єктів, і цей інструмент висновує типи GraphQL, написані мовою опису схеми. Це швидкий спосіб розробити схему на основі реальної відповіді API, експорту з бази даних або прикладу корисного навантаження замість того, щоб вводити кожне поле та тип вручну.

Скаляри визначаються на основі значень JSON: рядки стають String, цілі числа стають Int, десяткові числа стають Float, а true/false стають Boolean. Поле з ім'ям "id" типізується як ID, якщо воно містить рядок або ціле число, що відповідає тому, як більшість API GraphQL ідентифікують записи. Поля, чиє значення в прикладі дорівнює null, позначаються як необов'язкові; усі інші поля отримують маркер обов'язкового поля ("!"). Вкладені об'єкти стають власними іменованими типами, на які посилається батьківське, і структурно ідентичні вкладені об'єкти об'єднуються в один тип замість дублювання. Масиви стають типами списків з типом елемента, висновленим із їхнього вмісту.

Два додаткові параметри формують результат: включення користувацького скалярного параметра розпізнає ISO-рядки дати та дати-часу та оголошує "scalar Date" або "scalar DateTime" замість того, щоб розглядати їх як простий String, а вибір "Генерувати як" перемикається між "type" (для запитів) та "input" (для аргументів мутацій). Включення параметра "Включити тип Query" додає невеликий тип Query з одним полем, яке повертає кореневий тип, тому схема готова вставити на сервер або в інструмент на основі схеми як є.

Усе працює локально у вашому браузері — JSON, який ви вставляєте, ніколи не завантажується нікуди. Скопіюйте створений SDL, завантажте його як файл .txt або відправте прямо на вхід іншого інструмента, щоб продовжити роботу.

FAQ

Як вона визначає, чи є поле обов'язковим?
Поле позначається "!" (обов'язкове), якщо його значення в JSON не null; в іншому разі воно залишається необов'язковим.
Як обробляються вкладені об'єкти та списки?
Кожен вкладений об'єкт стає власним типом GraphQL, на який посилається його батьківське. Ідентичні вкладені структури повторно використовуються як один тип. Масиви стають типами списків, де тип елемента береться з вмісту масиву.
Що робить параметр "Визначати ID з поля 'id'"?
Якщо включено, будь-яке поле буквально з ім'ям "id", яке містить рядок або ціле число, типізується як вбудований скаляр GraphQL ID замість String або Int.
Чи можна генерувати типи графічного вводу замість типів об'єктів?
Так. Перемкніть "Генерувати як" на "input", щоб отримати блоки input Name { … }, корисні для аргументів мутацій. Обгортка Query додається лише для виходу "type", оскільки поле Query не може повернути тип input.
Мій JSON завантажується кудись?
Ні. Перетворення виконується повністю у вашому браузері — ваш JSON ніколи не залишає вашого пристрою.