Ответ
GraphQL — это язык запросов для API, который позволяет клиенту запрашивать только нужные данные, избегая избыточности. В отличие от REST, где сервер определяет структуру ответа, в GraphQL клиент сам формирует запрос с требуемыми полями.
Ключевые особенности:
- Гибкость — один запрос может объединять данные из разных источников
- Типизация — строгая схема данных (Schema) с типами (String, Int, Object и т.д.)
- Интроспекция — клиент может запросить метаданные API (schema introspection)
Пример запроса:
query {
user(id: "1") {
name
email
posts {
title
}
}
}
Плюсы:
- Уменьшение перегрузки сети
- Быстрая разработка (не нужно ждать бекенда для новых эндпоинтов)
- Мощная система типов
Минусы:
- Сложность кэширования
- N+1 проблема без должной оптимизации
- Кривая обучения для новичков