JSON в схему GraphQL (SDL)

Создавайте объектные типы GraphQL SDL по JSON: Int или Float, маркеры non-null, списки и вложенные типы, выведенные из вашего образца. Бесплатно, в браузере.

Ненулевые поля помечаются "!". Целые числа больше 32 бит становятся Float; смешанные или только null значения используют пользовательский скаляр JSON.

Работает полностью в вашем браузере. Ваши данные никуда не загружаются.

Похожие Инструменты

Просмотреть Все

Что такое JSON в GraphQL?

Создаёт объявления type на языке описания схем GraphQL (SDL) по образцу JSON. Обязательные значения получают маркер non-null !, массивы становятся списками, а вложенные объекты — отдельными объектными типами.

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

  1. Вставьте образец JSON в поле Входной JSON (либо нажмите Загрузить пример или Открыть файл).
  2. Задайте Имя корневого типа (по умолчанию Root).
  3. Скопируйте сгенерированный код GraphQL или нажмите Скачать, чтобы сохранить его в файл.

Пример

Ввод
{"id":1,"name":"A","tags":["x"]}
Вывод
type Root {
  id: Int!
  name: String!
  tags: [String!]!
}

Когда использовать JSON в GraphQL

Используйте для наброска схемы GraphQL API, оборачивающего существующий сервис JSON/REST. Выдаются только выходные типы; входные типы, запросы, мутации и резолверы всё равно нужно писать самостоятельно.

Как работает JSON в GraphQL

Образец обходится рекурсивно, и каждая позиция собирает встреченные в ней типы. Массивы объектов объединяются в один тип: ключ, отсутствующий у части элементов, становится необязательным, ключ, который где-то равен null, получает допустимое значение null, целые числа вперемешку с дробными становятся типом с плавающей точкой, а всё остальное со смешанными типами сводится к динамическому типу. Вложенные объекты становятся собственными именованными типами (PascalCase от ключа, ключи-массивы переводятся в единственное число: orders → Order), а при совпадении имён добавляются числовые суффиксы. В GraphQL целые числа превращаются в Int (или в Float, если значение превышает 32 бита, так как Int в GraphQL 32-битный), дробные — в Float, строки — в String, логические значения — в Boolean. Значения, равные null или отсутствующие в образце, допускают null (без !). Смешанные значения или значения только null используют пользовательский скаляр JSON, который при необходимости объявляется в начале. Имена полей, не являющиеся допустимыми именами GraphQL, преобразуются в camelCase.

Распространенные Случаи Использования

  • Черновик объектных типов для шлюза GraphQL поверх REST API
  • Документирование структуры данных JSON в SDL
  • Начало проектирования API по принципу schema-first на образце данных
  • Сравнение полезной нагрузки REST с существующей схемой GraphQL

Часто Задаваемые Вопросы

Почему идентификатор получил тип Int, а не ID?

В образце виден только номер. Замените на ID!, если поле — идентификатор: инструмент не может знать семантику.

Что такое скаляр JSON?

Пользовательский скаляр для значений с переменным типом. Ваш сервер должен определить его, например с помощью graphql-scalars.

Почему Float для больших целых чисел?

GraphQL Int ограничен 32-битными знаковыми значениями; большие числа были бы отклонены, поэтому они отображаются в Float (или используйте пользовательский скаляр BigInt).

Другие категории