Вопрос проверяет понимание GraphQL как альтернативы REST и причин его появления.
GraphQL — это язык запросов для API, который позволяет клиенту запрашивать ровно те данные, которые ему нужны. Он решает проблемы избыточных данных и большого количества запросов. Клиент сам описывает структуру ответа. Это делает API гибче для фронтенда. GraphQL особенно полезен при сложных UI.
GraphQL появился как ответ на ограничения классических REST API.
GraphQL — это:
язык запросов
спецификация API
единая точка входа для данных
Клиент описывает, какие поля и в какой структуре ему нужны.
query {
user {
id
name
}
}
REST часто приводит к двум ситуациям:
overfetching — данных больше, чем нужно
underfetching — данных не хватает, приходится делать дополнительные запросы
GraphQL решает это за счёт точного описания запроса.
меньше лишних данных
меньше запросов
API подстраивается под UI, а не наоборот
сложнее кеширование
выше сложность сервера
требуется строгая схема
GraphQL делает API более гибким для фронтенда, но увеличивает архитектурную сложность. Он оправдан там, где REST становится неудобным.