Что такое GraphQL?
DOM и браузер
GraphQL — это язык запросов к API и среда выполнения, где клиент указывает, какие именно данные ему нужны, и получает их одним запросом по строгой схеме.
Идеи
- Точная выборка — клиент запрашивает ровно нужные поля (нет over/under-fetching).
- Один эндпоинт — обычно POST на
/graphql. - Строгая схема — типизированный контракт, самодокументируемый.
- Связанные данные — несколько сущностей одним запросом.
query {
user(id: 1) {
name
posts { title }
}
}Операции
- query — чтение данных.
- mutation — изменение.
- subscription — подписка на изменения (реальное время).
Плюсы и минусы
- Плюсы: нет over/under-fetching, типизация, гибкость, без версионирования API.
- Минусы: сложность сервера (резолверы, N+1), тяжёлое кеширование, риск дорогих запросов.
GraphQL против REST
REST — фиксированные эндпоинты, простое кеширование; GraphQL — гибкая выборка ценой серверной сложности.
Коротко для собеседования
GraphQL — язык запросов к API: клиент берёт точные поля одним запросом по строгой схеме (query/mutation/subscription). Плюсы — нет over/under-fetching, типизация; минусы — сложность сервера и кеширования. Для простого CRUD с кешем по URL проще REST.