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

Есть ли методы запросов в GraphQL?

DOM и браузер

В GraphQL нет привычных HTTP-методов запросов (GET/POST/...) как в REST — вместо них есть три типа операций: query (чтение), mutation (изменение), subscription (подписка).

Операции GraphQL

query — чтение

Получение данных (аналог GET в REST):

query {
  user(id: 1) { name email }
}

mutation — изменение

Создание, обновление, удаление (аналог POST/PUT/PATCH/DELETE):

mutation {
  createUser(name: "Ann") { id }
}

subscription — подписка

Получение обновлений в реальном времени (через WebSocket):

subscription {
  messageAdded { text }
}

Транспорт — обычно один HTTP-метод

GraphQL работает поверх HTTP, но обычно использует один эндпоинт и POST для всех операций (query и mutation в теле запроса):

POST /graphql
{ "query": "{ user(id: 1) { name } }" }

Иногда query шлют через GET (для кеширования), но стандартно — POST на один URL.

GraphQL против REST

  • REST — разные HTTP-методы и URL для действий.
  • GraphQL — один эндпоинт, тип операции (query/mutation/subscription) в теле запроса.

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

В GraphQL нет HTTP-методов запросов как в REST — есть три операции: query (чтение), mutation (изменение), subscription (реальное время). Транспортно обычно всё идёт POST на один эндпоинт /graphql. В отличие от REST с разными методами и URL, GraphQL использует один эндпоинт и тип операции в запросе.

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