GraphQL — это язык запросов к API и среда их выполнения.
В отличие от REST, где каждый ресурс имеет свой эндпоинт, в GraphQL — один эндпоинт (/graphql), а клиент в теле запроса сам описывает, какие поля ему нужны.
👉 3 типа операций
Query — получить данные (аналог GET)
Mutation — изменить данные (аналог POST/PUT/PATCH/DELETE)
Subscription — подписка на события в реальном времени (WebSocket)
👉 Транспорт
Протоколы HTTP + WebSocket
👉 Эндпоинт
Одинаковый на все запросы к API. Получить товары, заказы, пользователей — всё одно и то же.
POST https://api.server.com/qraphql
👉 Тело запроса (request body)
Язык GraphQL
👉 HTTP-код ответа
Всегда HTTP-200 OK.
Даже при ошибках.
👉 Тело ответа (response body)
json
Пример запроса на получение данных
Эндпоинт:
POST https://api.test.com/qraphql
Тело:
query GetOrder($id: ID!) {
order(id: $id) {
id
status
totalAmount
customer {
name
}
}
}
Пример ответа:
Какие поля попросили в запросе, такие и вернулись в ответе.
HTTP-200 OK
{
"data": {
"order": {
"id": "42",
"status": "PAID",
"totalAmount": 4990,
"customer": {
"name": "Иван Петров",
"email": "ivan@example.com"
}
}
}
}
Подробнее и с примерами в полном справочнике по GraphQL прикреплённом к посту 📚
#RestApiGA #АрхитектураGA
Tg | ВК | Max