
Funcionalidade:
Mutations Aninhadas
Mutations Aninhadas
As mutations são expostas apenas no tipo raiz no GraphQL. Como consequência, o tipo raiz fica excessivamente sobrecarregado, contendo campos que não têm nada em comum entre si, exceto serem mutations (o que é uma questão técnica, não uma decisão de design de interface).
As mutations aninhadas tornam o schema mais lógico e navegável, permitindo executar mutations em qualquer tipo, e não apenas no tipo raiz. Elas também melhoram o desempenho, permitindo modificar dados no resultado de outra mutation, evitando assim a latência de executar múltiplas requisições.
Esta query GraphQL demonstra uma mutation aninhada:
mutation {
createPost(input: {
title: "First title"
}) {
status
postID
post {
update(input: {
title: "Second title",
contentAs: { html: "Some content" }
}) {
status
post {
title
content
addComment(input: {
commentAs: { html: "My first comment" }
}) {
status
commentID
comment {
content
date
}
}
}
}
}
}
}