Документы GraphQL

Форматтер GraphQLсинтаксис и схема — отдельные проверки

Выберите операции, SDL или переменные JSON. Для проверки полей операции добавьте полную схему в формате SDL.

Форматтер GraphQL

Ввод

Результат

Документы обрабатываются в этом браузере: без запросов к API, сохранения истории и добавления ввода в URL.

Параметры

Без схемы проверяется только синтаксис. Полный SDL позволяет статически проверить поля и типы. Переменные проверяются как объект JSON; соответствие значений объявленным типам не проверяется.

Документ и схема: по 100 000 символов; переменные: 20 000. GraphQL: 20 000 токенов, 100 уровней вложенности; остановка через 8 секунд.

Введите документ или загрузите пример.

Форматтер GraphQL помогает разобрать запрос, скопированный из журнала. Вложенные выборки становятся читаемыми, а определения фрагментов остаются рядом с операциями. Результат выводится отдельно, поэтому исходный текст можно сверить с ним.

Корректный синтаксис не означает, что поле существует в вашей API. Строка состояния показывает, проверена ли только грамматика или выполнена статическая проверка по предоставленной схеме.

Зачем нужен Форматтер GraphQL

Читать определения вместе

Форматтер GraphQL расставляет отступы в два пробела и выводит документ целиком. В структуре видны операции, объявления переменных, фрагменты и поля с исходными строками. Ссылки не разворачиваются, а отсутствующие определения не создаются.

Компактный документ превращается в строки с отступами; объект переменных показан на отдельной карточке.

Сверять поля с контрактом API

Валидатор GraphQL обнаружит неизвестное поле только тогда, когда ему доступна схема GraphQL. Добавьте полный SDL для проверки выборок, аргументов и связей фрагментов. Сообщения укажут, какой источник требует исправления.

Запрос проходит проверку синтаксиса, но добавленная схема выявляет и выделяет несовпадающее поле.

Сначала выберите объём проверки

01

Укажите подходящий тип документа

Режим операций принимает запросы, мутации, подписки и фрагменты. Отдельный type или extend можно обработать в режиме SDL без корневого типа Query. Режим переменных позволяет работать с JSON независимо от запроса.

02

Добавьте контекст на вкладках

В режиме операций вкладки документа, схемы и переменных сохраняют свои данные при переключении. Пример включает все три источника. Перед применением видны новые значения и число символов; возврат восстанавливает также прежний результат.

03

Следите за актуальностью вывода

Автообработка начинается через 400 мс после паузы во вводе. Отключите её, чтобы использовать кнопку или Ctrl/Cmd+Enter. Изменение входных данных блокирует экспорт до нового расчёта; переключение вида результата ничего не пересчитывает.

Представления для проверки документа

Отступы и компактная запись

Форматирование удобно для ревью, а минификация GraphQL удаляет лишние разделители. Обязательные пробелы между именами, значения строк и порядок полей сохраняются. Запрос не переписывается ради оптимизации выполнения.

Структура с исходными строками

Операции, объявления переменных, фрагменты, поля и типы SDL выводятся порциями по 100 элементов. JSON-файл структуры содержит весь список, в том числе ещё не показанные записи. Число элементов не является оценкой стоимости запроса.

Переменные без округления чисел

Переменные JSON сохраняют запись чисел 9007199254740993 и 1.2300e+40. Порядок ключей, включая похожие на числа, остаётся исходным. Повторный ключ вызывает ошибку, а не незаметную потерю одного из значений.

Диагностика с переходом к источнику

Синтаксические ошибки содержат строку и столбец, когда парсер их предоставляет. Нажатие открывает нужную вкладку. Если нарушена схема, но синтаксис документа верен, отформатированный текст доступен для чтения, а экспорт заблокирован до исправления.

Границы проверки и обработки

Статическая проверка не выполняет операцию
Инструмент не вызывает резолверы и не предсказывает ответ сервера. Обязательные значения переменных, преобразования во время выполнения, пользовательские скаляры и бизнес-правила не проверяются. Объявленные в документе типы переменных участвуют в статической проверке.
Для необязательной схемы нужен полный SDL
JSON интроспекции и удалённые URL не импортируются. Укажите корень запроса, используемые типы и определения собственных директив. Композиция Federation и генерация кода не поддерживаются. Независимый режим SDL проверяет только синтаксис.
Комментарии отличаются от описаний
Форматированный и минифицированный вывод не содержит комментариев #. Строковые описания SDL сохраняются как часть синтаксиса. Исходный ввод остаётся доступен; автоматического исправления, сортировки полей и загрузки внешних фрагментов нет.
Превышение лимита останавливает работу
Документ и схема ограничены 100 000 символов каждый, переменные — 20 000. GraphQL допускает до 20 000 токенов и 100 уровней разделителей; JSON также ограничен 100 уровнями. Через 8 секунд рабочий поток завершается: разделите большой документ и повторите попытку.

Форматтер GraphQL: вопросы и ответы

Как проверить синтаксис GraphQL в тексте из редактора?

Парсер проверяет соответствие грамматике и без схемы. В режиме операций оставьте схему пустой для проверки только синтаксиса. Успех не подтверждает, что поля существуют на вашем сервере.

Как проверить операции GraphQL по схеме сервера?

Вставьте полный SDL сервера на вкладке схемы, а операцию и нужные фрагменты — в документ. Статические правила проверят поля, аргументы и объявленные типы. Авторизация, выполнение и поведение резолверов не тестируются.

Почему переменные GraphQL определяются как некорректный JSON?

Переменные используют строгий JSON, а не запись входных объектов GraphQL или словари другого языка. Ключи и строки должны быть в двойных кавычках, завершающие запятые недопустимы, корнем должен быть объект. Повторные ключи также отклоняются.

Почему возникает ошибка «Query root type must be provided»?

В переданной полной схеме нет допустимого корневого типа запроса. Определите type Query либо укажите существующий объектный тип в объявлении schema. Для форматирования отдельного типа или расширения выберите режим SDL.

Почему при выводе запроса GraphQL отсутствует определение фрагмента?

Вывод одного узла операции не добавляет определения, находящиеся в другом месте. Здесь выводится весь вставленный документ. Включите необходимые фрагменты в тот же текст; инструмент не читает внешние файлы и не разворачивает ссылки автоматически.

Документ дал неожиданный результат?

Подготовьте документ к ревью

Используйте Форматтер GraphQL, проверьте указанный в статусе объём проверки и экспортируйте текущее представление.