Генератор определений типов GraphQL из JSON

ДанныеРазработчикТекст
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

Гид

Генератор определений типов GraphQL из JSON

Генератор определений типов GraphQL из JSON

Вставьте любой объект или массив JSON и мгновенно получите документ GraphQL Schema Definition Language (SDL), описывающий его структуру. Генератор проходит по дереву JSON, определяет типы скаляров, назначает имена вложенным объектам, объединяет варианты массивов объектов и генерирует опциональный корень. Query тип, чтобы выход был готов к использованию в сервере, таком как Apollo, Yoga, Mercurius или graphql-go.

Почему важен детерминированный конвертер JSON в GraphQL SDL

Ручное написание типов GraphQL на основе образца данных является механическим, но подверженным ошибкам. Один пропущенный нулевой элемент, несогласованность Int vs Floatили забытый маркер не-пустого значения в элементе списка может нарушить генерацию кода для всех клиентов, следующих за ним. Генератор, основанный на правилах, обрабатывает один и тот же образец JSON одинаково каждый раз, что делает его безопасным для повторного генерирования при каждом изменении API.

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

  1. Вставьте объект или массив JSON в поле ввода или нажмите Попробуйте пример загрузить представительный пакет данных.
  2. Установите Имя типа корня если вы хотите что-то иное, кроме Root.
  3. Выберите Нулевая допустимость поля стратегии — строгая (!) для обязательных полей или все поля могут быть пустыми для прототипирования.
  4. Переключать Обнаружение ID для автоматического повышения id и *Id ключей до скаляра GraphQL. ID Опционально включить корневой тип
  5. с полями для отдельных и списочных сущностей. Query Скопируйте SDL или загрузите его как
  6. Скалярная инференция schema.graphql.

Возможности

  • — определяет детерминированно. String, Int, Float, Booleanи ID Типы вложенных объектов
  • — генерирует отдельный именованный тип для каждого вложенного объекта, используя PascalCase из ключа поля. Объединение массивов объектов
  • — объединяет все поля по элементам массива, чтобы правильно помечать опциональные поля. Переключение между нулевыми и не-нулевыми полями
  • — генерирует строгие маркеры или расслабляет все поля до нулевых для ранних прототипов. ! Автоматическое обнаружение ID
  • — повышает стили ключей до Корневой каркас запроса id, userId, orderId — опциональный ID Опционально включить корневой тип
  • с сигнатурами разрешителей для отдельных и списочных сущностей. — ваш JSON никогда не покидает браузер, поэтому инструмент безопасен для чувствительных данных. type Query { ... } Правила инференции типов
  • На стороне клиента Целые числа отображаются как

; числа с дробной частью отображаются как

  • . Поле, виденное как оба, повышается до IntСтроки отображаются как Float. При включении обнаружения ID ключи, названные Float.
  • или заканчивающиеся на Stringстановятся id Логические значения отображаются как Id значения указывают на то, что поле может быть пустым, поэтому сгенерированный SDL пропускает завершающий ID.
  • Пустые массивы по умолчанию становятся Boolean.
  • null потому что нельзя безопасно определить тип элемента. !.
  • Массивы объектов объединяются в один именованный тип; поля, отсутствующие в любом элементе, автоматически становятся необязательными. [String] Кто использует это
  • Инженеры-бэкенды, обернутые REST-конечные точки или файлы JSON в гейтвей для GraphQL.

Разработчики фронтенда, прототипирующие схему на основе образца данных до того, как API будет готов.

  • Проектировщики API, документирующие формы ответов сторонних сервисов как типизированный контракт.
  • Пайплайны генерации кода, которым необходимы воспроизводимые артефакты SDL из стабильного образца JSON.
  • Что такое GraphQL SDL?
  • Язык определения схемы (SDL) — текстовый синтаксис GraphQL для описания типов, полей, запросов и мутаций, доступных через API. Он использует ключевые слова, такие как type, scalar, enum и input, для объявления формы данных, которые может возвращать сервер, и операций, которые может вызывать клиент.

Реклама · УДАЛИТЬ?

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

  1. Почему GraphQL использует маркер ! (не-пустой)?

    Знак восклицания после типа означает, что поле никогда не может иметь значение null. Это позволяет клиентам избегать проверок на null и позволяет серверу быстро выдавать ошибку при отсутствии обязательного значения. Без этого GraphQL по умолчанию считает все поля пустыми.

  2. Когда поле должно использовать тип ID вместо String?

    Тип ID зарезервирован для неизменяемых идентификаторов, используемых для повторной загрузки или кэширования объекта — первичные ключи, UUID, слаги, иностранные ключи. Он сериализуется как строка, но сигнализирует об идентичности, а не о содержимом, что помогает клиентам, таким как Apollo и Relay, правильно формировать нормализованные кэши.

  3. Как GraphQL обрабатывает списки объектов в SDL?

    Списки записываются с помощью квадратных скобок, например, [Order!]!. Внутренний ! означает, что каждый элемент в списке не может быть пустым, а внешний ! означает, что сам список не может быть пустым. Для правильной инференции типа элемента из образца JSON необходимо объединять формы поля по всем элементам массива.

  4. Генератор типов GraphQL из JSON 1

    Генератор типов GraphQL из JSON

Хотите убрать рекламу? Откажитесь от рекламы сегодня

Установите наши расширения

Добавьте инструменты ввода-вывода в свой любимый браузер для мгновенного доступа и более быстрого поиска

в Расширение Chrome в Расширение края в Расширение Firefox в Расширение Opera

Табло результатов прибыло!

Табло результатов — это интересный способ следить за вашими играми, все данные хранятся в вашем браузере. Скоро появятся новые функции!

Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?
Реклама · УДАЛИТЬ?

новости с техническими моментами

Примите участие

Помогите нам продолжать предоставлять ценные бесплатные инструменты

Купи мне кофе
Реклама · УДАЛИТЬ?