São os três tipos de operação, cada um mapeado para um root type no schema:
São os três tipos de operação, cada um mapeado para um root type no schema:
query GetPost { # read
post(id: "1") { title }
}
mutation AddComment { # write; returns the created object so the client updates its cache
addComment(postId: "1", text: "Nice!") {
id
text
}
}
subscription OnComment { # live: fires every time a comment is added
commentAdded(postId: "1") {
id
text
}
}
As mutations recebem argumentos (frequentemente um objeto input) e devem retornar os dados afetados para que o cliente possa atualizar sem uma segunda requisição. A regra sequencial importa: duas mutations em um mesmo documento — deposit e depois withdraw — sempre rodam nessa ordem, enquanto dois campos de query podem resolver de forma concorrente.
Os entrevistadores verificam se você sabe que queries são paralelas e sem efeitos colaterais, enquanto mutations são sequenciais, e que uma subscription precisa de um transporte com estado (WebSocket/SSE). Retornar os dados atualizados de uma mutation é o detalhe prático que separa quem já colocou GraphQL em produção de quem apenas leu sobre ele.
Uma biblioteca de perguntas de entrevista de TI com respostas detalhadas — de Júnior a Sênior.
Doar