PassFront
  1. PassFront
  2. База знаний
  3. DOM и браузер

Когда использовать GraphQL?

DOM и браузер

GraphQL используют, когда клиентам нужна гибкая выборка данных из множества связанных сущностей одним запросом, и REST порождает over-/under-fetching.

Когда GraphQL — хороший выбор

  • Разные клиенты с разными потребностями — мобайл и веб запрашивают разный набор полей одного API.
  • Сложные связанные данные — получить пользователя, его посты и комментарии одним запросом вместо нескольких REST-обращений.
  • Избежать over/under-fetching — клиент берёт ровно нужные поля, не лишнее и не недостаточное.
  • Быстро меняющиеся требования к данным — новые поля без новых версий API и без изменений сервера у большинства случаев.
  • Агрегация нескольких источников — GraphQL как слой над разными сервисами (BFF).
query {
  user(id: 1) {
    name
    posts { title comments { text } }
  }
}

Когда GraphQL не нужен

  • Простой CRUD → REST проще.
  • Нужно HTTP-кеширование по URL → REST удобнее.
  • Небольшое приложение, один клиент → накладные расходы GraphQL не оправданы.
  • Простые файловые загрузки, стриминг → REST/специализированные протоколы.

Цена

Сложность сервера (резолверы, N+1), нетривиальное кеширование, риск дорогих запросов (нужны лимиты глубины/стоимости).

Коротко для собеседования

GraphQL применяют, когда нужна гибкая выборка связанных данных одним запросом и разные клиенты берут разные поля (нет over/under-fetching), а требования часто меняются. Для простого CRUD с кешированием по URL проще REST. Цена GraphQL — сложность сервера и кеширования.

Другие вопросы раздела