Sono i tre tipi di operazione, ciascuno mappato a un root type nello schema:
Sono i tre tipi di operazione, ciascuno mappato a un root type nello 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
}
}
Le mutation ricevono argomenti (spesso un oggetto input) e dovrebbero restituire i dati modificati, così il client può aggiornarsi senza una seconda richiesta. La regola della sequenzialità è importante: due mutation in un unico documento — deposit poi withdraw — vengono sempre eseguite in quell'ordine, mentre due campi di una query potrebbero risolversi in modo concorrente.
Gli intervistatori verificano che tu sappia che le query sono parallele e prive di effetti collaterali, mentre le mutation sono sequenziali, e che una subscription richiede un trasporto con stato (WebSocket/SSE). Restituire i dati aggiornati da una mutation è il dettaglio pratico che distingue chi ha messo in produzione GraphQL da chi ne ha solo letto.
Una raccolta di domande di colloquio IT con risposte dettagliate — da Junior a Senior.
Dona