Ответ
GraphQL — это язык запросов для API, позволяющий клиентам запрашивать только нужные данные, избегая избыточности. В отличие от REST, где эндпоинты фиксированы, GraphQL предоставляет гибкость: клиент сам определяет структуру ответа.
Пример запроса:
query {
user(id: "1") {
name
email
posts {
title
}
}
}
Особенности:
- Один эндпоинт —
/graphqlвместо множества REST-путей. - Типизация — схема API строго типизирована (например,
type User { name: String! }). - Решает проблему over/under-fetching — клиент получает ровно то, что запросил.
В Go используют библиотеки типа graphql-go/graphql или gqlgen для реализации сервера.