mutation CreateMovie ($title: String!, $released: Date!) {
createMovie (title: $title, released: $released){
id
title
released
}
}
(submitted data)
{
“title”: “Seven Samurai”
“released”: “1950”
}
Todas as consultas, incluindo consultas de mutação, podem retornar dados. Aqui, a lista de campos entre chaves após createMovie
especifica o que queremos ver retornado do servidor após um novo registro ser criado com esta solicitação. O valor para o id
campo, neste caso, seria criado pelo banco de dados; os valores para os outros campos são enviados na consulta.
Outra coisa a ter em mente é que as consultas e os tipos de dados usados para retornar os dados são, por concepção, diferentes daqueles utilizados para solicitar dados. Consultas de mutação precisam validar dados de entrada, então os tipos usados para essas consultas são feitos para servir a essa função. Da mesma forma, os campos usados em objetos de consulta retornados são para exibição, não validação. Se você pegar um objeto GraphQL como retornado de uma consulta, ele pode ter campos com referências circulares ou outros problemas que o tornam inutilizável como um parâmetro de consulta.
Por que usar GraphQL?
Um motivo essencial para escolher GraphQL em vez de REST é a natureza explícita e declarativa das consultas GraphQL. Ter uma definição formal de como as consultas e os dados retornados devem parecer tem vantagens além de ser consistente em todas as APIs e implementações.