GraphQL: основное
Уровень: Middle
Ответ
Язык запросов для API, где клиент сам описывает, какие данные нужны, а сервер возвращает только запрошенные поля. Вместо множества REST-эндпоинтов есть один GraphQL-эндпоинт (обычно /graphql), который интерпретирует запросы и собирает данные. Требует определенной схемы типов на сервере (типы данных и взаимоотношения) и резолверов для каждого поля. Устраняет проблему недостаточной или избыточной выборки (over/under-fetching), но усложняет кеширование и увеличивает нагрузку на сервер при сложных запросах.