SYSTEM ATLASЗагрузка материала

Ограничение сложности GraphQL-запроса

GraphQL Query Complexity

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

Простыми словами

Представьте обычный интернет-сервис, который получает данные и команды от пользователей, браузеров и других систем. Без явных проверок он легко начинает доверять тому, что пришло извне, хотя внешний ввод всегда может быть ошибочным или враждебным. Так внешние данные и права проходят проверку до того, как смогут изменить состояние системы или получить доступ к защищённым ресурсам. Поэтому главное - заранее ограничить возможный ущерб и проверить, что лишний доступ или опасный ввод не проходят незаметно.

Пример от @Vibeclakr

Пример при разработке

В проекте команда фиксирует практику «Ограничение сложности GraphQL-запроса» как отдельное правило, добавляет автоматическую проверку и наблюдаемый критерий результата.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Формальное определение

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

Механизм действия

Для «Ограничение сложности GraphQL-запроса» команда задаёт явные границы, проверяемый контракт и сигнал, по которому видно соблюдение или нарушение правила.

Пример в работе

Нерабочий подход

Использовать «Ограничение сложности GraphQL-запроса» как термин без владельца, критерия и проверки реального поведения.

Системный подход

Связать «Ограничение сложности GraphQL-запроса» с конкретным риском, тестом или метрикой и пересматривать правило при изменении контекста.

Ограничения

Практика «Ограничение сложности GraphQL-запроса» решает ограниченную задачу и не заменяет анализ всей системы, проверку исходных допущений и измерение побочных эффектов.

Источник

GraphQL Foundation, “GraphQL Specification”, 2021.

Первоисточник