Запросы и мутации GraphQL: в чем разница?

8
технологии 18.webp

Последнее обновление 13.03.2023 — Василий Иванов

Такие читатели, как вы, помогают поддерживать MUO. Когда вы совершаете покупку по ссылкам на нашем сайте, мы можем получать партнерскую комиссию. Читать далее.

GraphQL — это мощный язык запросов, который позволяет клиентам запрашивать с сервера только те данные, которые им нужны. Это помогает вам увеличить скорость запросов, поскольку вы можете настраивать запросы для получения только определенных данных.

GraphQL имеет два типа операций: запросы и мутации. Несмотря на их сходство, они служат совершенно разным целям.

Различия между запросами GraphQL и мутациями

Запросы и мутации похожи в том, что вы используете их для выполнения запросов к API GraphQL. Однако они различаются синтаксисом, режимом выполнения и использованием.

Синтаксис запросов и мутаций

Основной синтаксис запроса GraphQL следующий:

 query getProduct($id: ID!) {
  product(id: $id) {
    name
    price
  }
}

Вот что означает этот код:

  • query — это ключевое слово, которое идентифицирует запрос как запрос.
  • getProduct — имя операции
  • $id — это переменная
  • ИДЕНТИФИКАТОР! является типом переменной.
По теме:  Эксплойты нулевого дня Windows MSHTML опубликованы на форумах хакеров

Если вам не нужны переменные, опустите их и определите запрос следующим образом:

 query getProducts {
  products {
    name
    price
  }
}

В некоторых ситуациях вы можете опустить ключевое слово и имя запроса, написав запрос GraphQL следующим образом:

 products {
  name
  price
}

Хотя этот формат работает, использование ключевого слова запроса лучше для удобочитаемости.

Синтаксис мутаций аналогичен запросам, за исключением использования ключевого слова мутации.

 mutation AddNewProduct ($name: String!, $price: Number!) { 
  addProduct(name: $name, price: $price) {
    name
    price
  }
}

Различные режимы выполнения

Другое различие между запросом и мутацией заключается в том, что запросы выполняются параллельно, а мутации выполняются синхронно. Когда вы запускаете две мутации, они будут выполняться одна за другой, чтобы

Различное использование запросов и мутаций

Вы должны использовать запросы только для операций READ. Например, используйте запрос при получении продуктов из конечной точки API.

Используйте мутации для операций CREATE, UPDATE и DELETE. По сути, это операции, которые изменяют данные, хранящиеся в базе данных.

Например, используйте мутацию при обновлении имени клиента через конечную точку заказов.

Выработайте привычку правильно использовать запросы и мутации

GraphQL — это мощный язык запросов, который позволяет вам запрашивать только те данные, которые вам нужны. В GraphQL можно выполнять две операции: запросы и мутации.

Эти операции различаются синтаксисом, выполнением и предполагаемым использованием. Вы должны использовать запросы для операций READ и мутации для операций CREATE, UPDATE и DELETE.