Конвертер JSON в схему GraphQL

Вставьте ответ API в JSON и получите для него типы схемы GraphQL. Каждый объект становится типом, массивы — списками, а поля, которые есть всегда, получают !. Режим input создаёт входные типы для мутаций.

Создать

Работает в браузере: всё, что вы вводите, никуда не отправляется.

Как пользоваться

  1. Вставьте пример JSON — лучше настоящий ответ API, где в каждом массиве несколько элементов, чтобы найти необязательные поля.
  2. Выберите type для выходных типов или input для аргументов мутаций (к именам добавится суффикс Input).
  3. Скопируйте схему в файл .graphql и переименуйте Root во что-то осмысленное, например Book.

Как это работает

Пример разбирается в «форму»: каждый ключ со всеми видами значений, которые в нём встретились, причём все объекты массива сливаются в один тип.

  • Имена полей, допустимые в GraphQL, сохраняются как есть; остальные (user-name) пересобираются в camelCase, а исходный ключ JSON остаётся в комментарии #.
  • Типы идут от родителя к потомкам: сначала Root, затем вложенные в порядке появления.
  • Для массива на верхнем уровне выводится комментарий вида # Top level: [RootItem!]! — этот тип и укажите у поля запроса.

Пример

{"line_items":[{"sku":"A","qty":2},{"sku":"B"}]} даёт:

type Root {
  line_items: [LineItem!]!
}

type LineItem {
  sku: String!
  qty: Int
}

Во втором элементе нет qty, поэтому у него нет !, а тип элемента списка назван в единственном числе.

Советы

  • В GraphQL принято называть поля в camelCase; snake_case-ключи можно переименовать и сопоставить в резолверах.
  • Даты в JSON приходят строками; вместо String подумайте о скаляре DateTime.
  • Имена типов и полей должны быть латиницей: ключи на кириллице калькулятор заменит на field с исходным ключом в комментарии.

Частые вопросы

Как значения JSON превращаются в типы GraphQL?

Строки — в String, true и false — в Boolean, целые числа — в Int, остальные — во Float (смесь целых и дробных даёт Float). Массивы становятся списками вроде [String!]!, а каждый объект получает свой тип с именем по ключу: author даёт Author, reviews — Review.

Когда поле получает знак ! (non-null)?

Когда значение нигде в примере не равно null и ключ есть в каждом объекте своего массива. Ключ, который в части объектов отсутствует или где-то равен null, остаётся необязательным. Выключите опцию, чтобы все поля были необязательными — так по умолчанию в GraphQL.

Что за скаляр JSON в результате?

В GraphQL нет типа «что угодно», поэтому место, где встречаются значения разных видов, только null или объект без ключей, получает пользовательский скаляр JSON, объявленный в начале. Серверу нужен для него резолвер — например GraphQLJSON из пакета graphql-scalars, — либо замените его настоящим типом.

id — это Int или ID?

Калькулятор не знает, что число — идентификатор, поэтому id: 42 станет Int. Int в GraphQL — 32-битное целое со знаком; для ключей и больших чисел замените тип вручную на ID (передаётся строкой) или Float.

Ещё в разделе «Разработчикам»

Все инструменты раздела: Разработчикам ·Обновлено 7 ноября 2026 г.

Настройки конфиденциальности

Google Analytics показывает нам, какими инструментами пользуются и работают ли они. Он может ставить cookie. Ваш выбор сохраняется в этом браузере.