Построитель запросов GraphQL
Писать операцию GraphQL вручную значит следить за фигурными скобками, аргументами и отступами. Этот конструктор собирает документ за вас: выберите запрос, мутацию или подписку, назовите операцию, укажите корневое поле, добавьте аргументы и перечислите нужные поля. Вы получите отформатированную операцию, которую можно сразу вставить в Apollo, urql или GraphiQL.
Как создать операцию в GraphQL
-
1
Выберите тип операции
Выберите запрос, мутацию или подписку в раскрывающемся списке. Это определяет, какой вид операции выполнит сервер.
-
2
Назовите операцию
Дайте ей имя, например GetUser, чтобы сервер мог логировать и кэшировать её. Имя необязательно; конструктор работает и без него.
-
3
Укажите корневое поле
Введите поле, которое хотите вызвать, например user, createPost или orderUpdated.
-
4
Добавьте аргументы
Добавьте пары ключ-значение, такие как id: "123" или id: $id. Строки с пустым ключом пропускаются.
-
5
Перечислите поля и скопируйте
Введите по одному полю в строку, соберите запрос и скопируйте отформатированный документ в буфер обмена.
Работа с документами GraphQL
Документ GraphQL это набор из одной или нескольких операций плюс все фрагменты, на которые они ссылаются. Каждая операция называет корневое поле типа Query, Mutation или Subscription, а сервер разрешает запрошенный вами набор выборки. Конструктор пишет текст операции за вас, но не знает вашей схемы, поэтому перед запуском операции сверьте каждое имя поля и аргумента со своим API.
Строение операции
| Часть | Цель | Пример |
|---|---|---|
| Тип операции | Запрос, мутация или подписка | query, mutation, subscription |
| Имя операции | Используется для кэширования и журналов | GetUserById |
| Аргументы | Значения, передаваемые корневому полю | user(id: "123") |
| Набор выборки | Поля и вложенные выборки | { user(id: "123") { name posts { title } } } |
| Переменные | Типизированные входные данные, объявленные вместе с именем операции | query GetUser($id: ID!) { user(id: $id) { name } } |
Распространённые ошибки
- Обязательные переменные заканчиваются на
!. Если пропустить его для аргументов, помеченных в схеме какNonNull, ошибка проверки возникнет ещё до запуска резолвера. - Текстовым аргументам нужны кавычки. Значение вида
123это число; текстовое значение нужно записать в строке аргумента как"123"в двойных кавычках. - Типы-объединения и интерфейсы требуют встроенных фрагментов
... on TypeNameдля чтения полей, специфичных для конкретного типа. - Псевдонимы обязательны, когда вы запрашиваете одно и то же поле дважды с разными аргументами, например
today: stats(period: DAY)иweek: stats(period: WEEK). - Соединения (спецификация Relay) предоставляют
edges { node { ... } }иpageInfo { endCursor hasNextPage }; пропуск любого из них ломает пагинацию.
Советы
- Делайте операции небольшими и именованными, чтобы Apollo Client мог кэшировать их по отдельности.
- Меняющиеся значения передавайте как переменные, а не литералы: тогда сервер разберёт документ один раз и переиспользует его. Объявляйте их рядом с именем операции, например
query GetUser($id: ID!). - Если полю нужно несколько аргументов, запишите их в одной строке аргумента через запятые, например
filter: { status: ACTIVE }в качестве значения. - Конструктор выводит ровно тот текст, который вы задали. Если операция не сработала, сначала сверьте имена полей с текущей схемой.
Часто задаваемые вопросы
Нет. Он только форматирует текст, который вы вводите; вызывать точку подключения не нужно, и схема не требуется. Заполните части операции, и конструктор соберёт документ за вас.
Да. В раскрывающемся списке операции переключайтесь между запросом, мутацией и подпиской. Всё остальное работает одинаково: имя, корневое поле, аргументы и поля.
Добавьте строки в раздел аргументов. Ключ это имя аргумента, а значение это то, что вы передаёте, например id: “123” или id: $id. Строки с пустым ключом игнорируются. Если вы вводите переменную вроде $id, объявите её сами рядом с именем операции, например query GetUser($id: ID!).
Конструктор выводит ровно тот текст, который вы ввели. Обычно такая ошибка означает, что имя поля или аргумента не совпадает со схемой вашего сервера: сравните корневое поле и каждое имя поля со своим API и исправьте опечатки.
Сопутствующие инструменты
Справочная таблица ASCII
Полная таблица ASCII от 0 до 127 с десятичным, шестнадцатеричным, восьмеричным и двоичным представлением, а также записью числовых ссылок HTML, включая NUL, LF и DEL.
Справочник сочетаний клавиш
Ищите документированные сочетания по умолчанию для VS Code, Chrome и Bash с GNU Readline в macOS, Windows и Linux.
Справочник символов HTML
Справочник HTML-сущностей с поиском, их именованными и числовыми кодами, а также копированием специальных символов и знаков одним кликом.
Шпаргалка по Markdown
Практический справочник Markdown с настоящим предпросмотром и готовыми для копирования примерами заголовков, списков, таблиц, кода, ссылок, изображений и синтаксиса GFM.
Счетчик FPS
Измерьте FPS браузера через requestAnimationFrame: сглаживание, минимальная и максимальная частота кадров, порог предупреждения и график по желанию. Работает локально, без загрузок и API.
Шпаргалка по регулярным выражениям
Поисковый справочник регулярных выражений для JavaScript, PCRE2/PHP, Python re и .NET. Сравнивайте токены, синтаксис движков, якоря, группы, проверки и флаги.
Инструмент доступен на других языках
- Pembuat Kueri GraphQL [ID]
- GraphQLクエリビルダー [JA]
- เครื่องสร้าง GraphQL Query [TH]
- Kreator zapytań GraphQL [PL]
- Construtor de Consultas GraphQL [PT]
- GraphQL 쿼리 빌더 [KO]
- GraphQL-frågebyggare [SV]
- GraphQL-Abfrage-Builder [DE]
- Trình tạo truy vấn GraphQL [VI]
- أداة إنشاء استعلامات GraphQL [AR]
- Constructor de Consultas GraphQL [ES]
- Constructeur de requêtes GraphQL [FR]
- GraphQL-querybouwer [NL]
- GraphQL Query Builder [EN]
- Costruttore di Query GraphQL [IT]
- GraphQL Sorgu Oluşturucu [TR]
- GraphQL查询构建器 [ZH]