JSON в схему GraphQL (SDL)
Создавайте объектные типы GraphQL SDL по JSON: Int или Float, маркеры non-null, списки и вложенные типы, выведенные из вашего образца. Бесплатно, в браузере.
Ненулевые поля помечаются "!". Целые числа больше 32 бит становятся Float; смешанные или только null значения используют пользовательский скаляр JSON.
Работает полностью в вашем браузере. Ваши данные никуда не загружаются.
Похожие Инструменты
Просмотреть ВсеЧто такое JSON в GraphQL?
Создаёт объявления type на языке описания схем GraphQL (SDL) по образцу JSON. Обязательные значения получают маркер non-null !, массивы становятся списками, а вложенные объекты — отдельными объектными типами.
Как пользоваться JSON в GraphQL
- Вставьте образец JSON в поле Входной JSON (либо нажмите Загрузить пример или Открыть файл).
- Задайте Имя корневого типа (по умолчанию
Root). - Скопируйте сгенерированный код 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).