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

Какие плюсы и минусы GraphQL?

DOM и браузер

GraphQL — язык запросов к API, где клиент сам указывает, какие данные ему нужны. У него есть плюсы (гибкость, один запрос) и минусы (сложность, кеширование).

Плюсы

  • Точная выборка — клиент запрашивает ровно нужные поля, без over-fetching (лишних данных) и under-fetching (нехватки).
  • Один запрос — связанные данные из разных сущностей одним обращением (нет «водопада» запросов).
  • Строгая схема и типизация — самодокументируемый контракт, автогенерация типов.
  • Версионирование не нужно — поля добавляют/депрекейтят без новых версий API.
  • Интроспекция — инструменты (GraphiQL) для изучения API.

Минусы

  • Сложность на сервере — резолверы, схема, оптимизация запросов (проблема N+1).
  • Кеширование сложнее — единый POST-эндпоинт против URL-based кеша REST.
  • Риск тяжёлых запросов — клиент может запросить слишком много (нужны лимиты глубины/стоимости).
  • Overkill для простого API — REST проще для CRUD.
  • Загрузка файлов и статус-коды — менее естественны, чем в REST.

GraphQL против REST

  • REST — фиксированные эндпоинты, простое кеширование, риск over/under-fetching.
  • GraphQL — гибкая выборка одним запросом ценой серверной сложности.

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

GraphQL — клиент запрашивает точные данные одним запросом по строгой схеме. Плюсы: нет over/under-fetching, типизация, без версионирования. Минусы: сложность сервера, тяжёлое кеширование, риск дорогих запросов. Для простого CRUD часто проще REST.

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