
Разбор · Подготовили 08.10.2026
GraphQL описывает запрос нужных полей: агенты работают по согласованной схеме и правам
Выбор полей, совместимость старых экранов и цена сложного запроса. Разбор по документации GraphQL и проверкам нашей машины агентов. Собственного клиентского GraphQL-кейса у нас нет.
Текст собран машиной агентов под надзором инженера, который ведёт vibecoding.ru · факты проверены 8 октября 2026
GraphQL позволяет экрану запросить нужные поля из общей схемы, но проверку прав и нагрузку оставляет серверу.
CTO стоит принимать у подрядчика запросы экранов вместе с проверками доступа и совместимости, даже когда код пишут ИИ-агенты.
Не хотите разбираться сами? Внедряем ИИ в ваш бизнес: задачи без лимита, одна цена в месяц, отмена в любой момент.
1. Экран выбирает поля из общей схемы.
GraphQL описывает запрос к API и правила его исполнения. Схема перечисляет доступные поля и их типы, а серверные обработчики получают значения.
В учебном кабинете клиенту нужны номер и статус заказа. Менеджеру нужны ещё ответственный и заметка. Экраны выбирают поля одной схемы.
Клиент не может выдумать поле, которого нет в схеме. И выбранные поля ещё надо получить из базы или другого сервиса: GraphQL эту работу не отменяет.
Один заказ даёт экранам разные данные
Учебный пример редакции; механизм выбора полей и схемы: GraphQL.org, Queries и Schemas and Types, проверено 8 октября 2026. Это не клиентский кейс.
2. Права проверяет сервер при каждом обращении.
Вход в кабинет подтверждает личность, но не разрешает читать любой заказ. Сервер проверяет владельца записи и доступ к выбранному полю.
Спрятанная кнопка не защищает заметку. Клиент может отправить запрос вручную. Чужой номер заказа не должен открыть чужие данные.
Согласованные правила проекта заранее описывают роли и исключения. Агент реализует их в серверной бизнес-логике; разрешения утверждает заказчик.
Приёмка проверяет и разрешённые, и запрещённые обращения
Предлагаемая приёмка учебного кабинета; принцип серверной авторизации: GraphQL.org, Authorization, проверено 8 октября 2026. Форму отказа согласуют отдельно.
3. Новые поля добавляют, старые запросы сохраняют.
Новый экран не требует новой версии всей схемы. В кабинет можно добавить поле отслеживания доставки, сохранив прежний запрос со статусом заказа.
Удаление статуса сломает старый клиент. Мобильное приложение не обновляется вместе с сервером: новый экран не доказывает совместимость.
Устаревшее поле помечают до удаления. Команда сохраняет старые запросы для проверки и согласует переход с владельцами экранов.
Схему меняют вместе с её потребителями
GraphQL.org, Schema Design, проверено 8 октября 2026. Набор проверок редакционный; добавление поля не разрешает менять смысл уже работающего поля.
4. Один сетевой запрос не гарантирует лёгкую работу сервера.
Короткий ответ не показывает работу сервера. Запрос заказов с товарами может вызвать отдельное обращение к базе для каждого товара.
Такую повторную загрузку называют N+1. Обработчики объединяют обращения и используют кэш; нагрузку измеряют на данных нужного объёма.
Лимит глубины не остановит широкий запрос с повторяющимися полями. Нужны ограничения размера списков и стоимости операции, а также частоты обращений.
Разные ограничения закрывают разные причины перегрузки
GraphQL.org, Security и Performance, проверено 8 октября 2026. Пороги задают для конкретного продукта; доверенная операция не заменяет авторизацию.
5. Наш опыт подтверждает проверки контрактов, а не внедрение GraphQL.
На vibecoding.ru инженер ведёт машину агентов. Открытая карта работы показывает и интерфейсы, и серверную часть. Собственного GraphQL-кейса у нас нет.
Наши поломки показывают цену рассогласованных ответов. Обложка терялась в ленте; новое поле ответа однажды остановило страницы.
Те же ошибки надо проверять в GraphQL-проекте. Схема описывает договорённость, а проверка доказывает, что экран и обработчик её исполняют.
Поломка оставляет правило для следующей правки
31.07
Обложки были в истории, но не доезжали до ленты. Общая сборка ответа стала передавать нужные поля всем её экранам.
10.08
Асинхронный ответ не дождались, в проверку уходил пустой объект. Исправили ожидание результата; обёртка должна наследовать таймаут канала.
24.09
Новое поле ответа не было описано в валидаторе, страницы падали. Тест теперь сверяет поля ответа с валидатором.
Записи машины vibecoding.ru от указанных дат, перечитаны 8 октября 2026. Это инциденты других интерфейсов нашей машины, не GraphQL-внедрения.
6. Агенту отдают правку с запросами и условиями приёмки.
В существующем проекте постановку задачи агенту дополняют запросами затронутых экранов. Фразы «добавить GraphQL» недостаточно для приёмки.
Агент меняет согласованную схему, обработчики и проверки. Расширение прав клиента или удаление старого поля требует отдельного согласования.
Приёмку и ответственность закрепляют до правки. В курсе агентной разработки есть урок «Одиннадцать шагов одной задачи».
Пакет правки можно проверить без автора
Предлагаемая редакцией приёмка, основанная на документации GraphQL и опыте машины. Это не обещание, что тесты покрывают все возможные запросы.
7. Подписка подходит для правок выбранной технологии.
На 8 октября 2026 подписка на агентную разработку, тариф «Один проект», стоит 250 000 ₽ в месяц. В одном потоке одна задача находится в работе.
В существующем GraphQL-проекте меняем согласованную схему, обработчики и проверки доступа. Код идёт в вашу ветку вашего репозитория.
Переход с REST требует отдельного обоснования. Если правки нужны в уже выбранном GraphQL-проекте, обсудите работу с агентами.
Что и как мы проверяли
| Факт | Что известно | Проверено |
|---|---|---|
| Механика GraphQL | Лично прочитаны официальные Queries, Schema, Execution, Authorization, Schema Design, Security и Performance. Рекомендации приёмки в таблицах отделены от фактов документации | 2026-10-08 |
| Наш опыт | Живой /open и оригинальные записи поломок 31.07, 10.08 и 24.09.2026. Истории относятся к проверкам других интерфейсов машины, собственного GraphQL-кейса нет | 2026-10-08 |
| Цена и код | Живой /services, снимок 8 октября около 01:20 МСК: «Один проект», 250 000 ₽ в месяц, один поток, код в ветке репозитория заказчика. Это тариф сопровождения, не цена перехода на GraphQL | 2026-10-08 |
| Учебные примеры | Кабинет заказов, роли и пакет приёмки придуманы редакцией для объяснения. Это не клиентские результаты и не измеренные пределы нагрузки | 2026-10-08 |
8. Частые вопросы
GraphQL заменяет SQL и базу данных?+
Нет. GraphQL описывает API и выполнение операций. Обработчик может обращаться к базе через SQL или получать данные другим способом.
Чем GraphQL отличается от REST?+
В GraphQL набор полей операции задаёт клиент в пределах схемы. REST-интерфейсы тоже могут поддерживать выбор полей. Выбор технологии зависит от потребителей и цены сопровождения, а не от названия.
Нужна ли отдельная схема для каждого экрана?+
Обычно экраны используют одну схему и разные операции. Границы нескольких схем определяют устройство продукта и команды; число экранов само по себе их не задаёт.
Нужно ли скрыть схему, чтобы защитить данные?+
Скрытие описания не заменяет проверки прав. Сервер обязан проверять доступ к объектам и полям даже у уже вошедшего пользователя.
Можно ли разрешить только заранее известные запросы?+
Для собственных интерфейсов подходит список доверенных операций. Проверки прав и пределы значений аргументов всё равно нужны. Сторонние потребители могут присылать заранее неизвестные операции.
GraphQL всегда сокращает запросы к базе?+
Нет. Один запрос по сети может вызвать много обращений к базе. Их считают при выполнении, а не по числу HTTP-запросов.
Стоит ли переписывать работающий REST API агентами?+
Только после проверки конкретной пользы. Разные данные для нескольких экранов можно получать и без миграции. Сравните один сценарий на текущем API и предлагаемом GraphQL, включая права и нагрузку.
Источники
- GraphQL.org, Queries — официальная документация
- GraphQL.org, Schemas and Types — официальная документация
- GraphQL.org, Execution — официальная документация
- GraphQL.org, Authorization — официальная документация
- GraphQL.org, Schema Design — официальная документация
- GraphQL.org, Security — официальная документация
- GraphQL.org, Performance — официальная документация
- vibecoding.ru, открытая работа машины — собственная публичная поверхность
- vibecoding.ru, тариф и передача кода — собственная публичная поверхность
- vibecoding.ru, оглавление курса «Агентная разработка» — собственная публичная поверхность
Запомнить
1. GraphQL даёт выбор полей из схемы. Зафиксируйте запрос каждого затронутого экрана.
2. Схема не разрешает доступ. Проверяйте свои и чужие записи, роли и вложенные связи.
3. Старый экран должен продолжать работать. Повторите его запрос после изменения схемы.
4. Один запрос может дорого обходиться серверу. Измерьте выполнение и задайте пределы.
5. Агент исполняет согласованный контракт. Принимайте схему вместе с кодом и воспроизводимыми проверками.