Запросы и мутации GraphQL: в чем разница?
Убедитесь, что вы знаете, когда использовать запрос GraphQL, а когда — мутацию.
GraphQL — это мощный язык запросов, который позволяет клиентам запрашивать с сервера только те данные, которые им нужны. Это помогает вам увеличить скорость запросов, поскольку вы можете настроить запросы для получения только определенных данных.
GraphQL имеет два типа операций: запросы и мутации. Несмотря на их сходство, они служат совершенно разным целям.
Различия между запросами и мутациями GraphQL
Запросы и мутации схожи в том, что вы используете их для отправки запросов к API GraphQL. Однако они различаются синтаксисом, режимом выполнения и использованием.
Синтаксис запросов и мутаций
Основной синтаксис запроса GraphQL следующий:
query getProduct($id: ID!) {
product(id: $id) {
name
price
}
}
Вот что означает этот код:
- запрос — это ключевое слово, которое идентифицирует запрос как запрос.
- getProduct — это имя операции
- $id — переменная
- ИДЕНТИФИКАТОР! — это тип переменной.
Если вам не нужны переменные, опустите их и определите запрос следующим образом:
query getProducts {
products {
name
price
}
}
В некоторых ситуациях вы можете опустить ключевое слово и имя запроса, написав запрос GraphQL следующим образом:
products {
name
price
}
Хотя этот формат работает, использование ключевого слова запроса лучше для удобства чтения.
Синтаксис мутаций аналогичен запросам, за исключением использования ключевого словаmutation.
mutation AddNewProduct ($name: String!, $price: Number!) {
addProduct(name: $name, price: $price) {
name
price
}
}
Различные режимы выполнения
Еще одно различие между запросом и мутацией заключается в том, что запросы выполняются параллельно, а мутации выполняются синхронно. Когда вы запускаете две мутации, они выполняются одна за другой в порядке
Противопоставление использования запросов и мутаций
Вы должны использовать запросы только для операций READ. Например, используйте запрос при получении продуктов из конечной точки API.
Используйте мутации для операций CREATE, UPDATE и DELETE. По сути, это операции, которые изменяют данные, хранящиеся в базе данных.
Например, используйте мутацию при обновлении имени клиента через конечную точку заказов.
Выработайте привычку использовать запросы и мутации соответствующим образом.
GraphQL — мощный язык запросов, который позволяет вам запрашивать только те данные, которые вам нужны. В GraphQL можно выполнять две операции: запросы и мутации.
Эти операции различаются по синтаксису, выполнению и предполагаемому использованию. Вам следует использовать запросы для операций READ и мутации для операций CREATE, UPDATE и DELETE.