Consultas e mutações GraphQL: Qual é a diferença?
Certifique-se de saber quando usar uma consulta GraphQL e quando usar uma mutação.
GraphQL é uma linguagem de consulta poderosa que permite aos clientes solicitar de um servidor apenas os dados de que precisam. Ajuda a aumentar a velocidade das solicitações, pois você pode personalizar consultas para buscar apenas dados específicos.
GraphQL possui dois tipos de operação: consultas e mutações. Apesar de suas semelhanças, eles servem a propósitos bastante diferentes.
Diferenças entre consultas e mutações GraphQL
Consultas e mutações são semelhantes no sentido de que você as usa para fazer solicitações às APIs GraphQL. No entanto, eles diferem em sintaxe, modo de execução e uso.
A sintaxe de consultas e mutações
A sintaxe básica de uma consulta GraphQL é a seguinte:
query getProduct($id: ID!) {
product(id: $id) {
name
price
}
}
Aqui está o que este código significa:
- query é a palavra-chave que identifica a solicitação como uma consulta.
- getProduct é o nome da operação
- $id é a variável
- EU IA! é o tipo de variável.
Se você não precisa das variáveis, omita-as e defina a consulta assim:
query getProducts {
products {
name
price
}
}
Em algumas situações, você pode omitir a palavra-chave e o nome da consulta, escrevendo uma consulta GraphQL como esta:
products {
name
price
}
Embora esse formato funcione, usar a palavra-chave query é melhor para facilitar a leitura.
A sintaxe das mutações é semelhante às consultas, exceto pelo uso da palavra-chave mutação.
mutation AddNewProduct ($name: String!, $price: Number!) {
addProduct(name: $name, price: $price) {
name
price
}
}
Diferentes modos de execução
Outra diferença entre uma consulta e uma mutação é que as consultas são executadas em paralelo, enquanto as mutações são executadas de forma síncrona. Quando você executa duas mutações, elas serão executadas uma após a outra, em ordem
Usos contrastantes para consultas e mutações
Você deve usar consultas apenas para operações READ. Por exemplo, use uma consulta ao buscar produtos de um endpoint de API.
Use mutações para operações CREATE, UPDATE e DELETE. Estas são essencialmente operações que alteram os dados armazenados no banco de dados.
Por exemplo, use uma mutação ao atualizar o nome de um cliente por meio de um endpoint de pedidos.
Adquira o hábito de usar consultas e mutações de maneira adequada
GraphQL é uma linguagem de consulta poderosa que permite solicitar apenas os dados necessários. Existem duas operações que você pode realizar no GraphQL: consultas e mutações.
Essas operações diferem em sintaxe, execução e usos pretendidos. Você deve usar consultas para operações READ e mutações para operações CREATE, UPDATE e DELETE.