Pesquisa de site

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.

Artigos relacionados: