← Tutti gli episodi
Copertina di I dati sono un grafo: seguire i collegamenti in una sola richiesta
Stagione 44 · Episodio 003

I dati sono un grafo: seguire i collegamenti in una sola richiesta

6 settembre 2026 4:58
0:00 4:58

Ciao, e benvenuto nella terza puntata della quarantaquattresima stagione. Nella scorsa puntata abbiamo visto che il cliente tiene la penna e descrive la forma che vuole. Ma c'è una domanda più profonda sotto: che forma hanno, davvero, i tuoi dati? La risposta è nel nome stesso di GraphQL: i tuoi dati sono un grafo. Oggi entriamo nel cuore concettuale della stagione, l'idea che il nome indica: i dati come una rete di cose connesse, che percorri in una sola richiesta.

Partiamo dall'intuizione, perché è più naturale di quanto sembri. I tuoi dati non sono un mucchio di cose separate e isolate: sono una rete di collegamenti. Un utente è collegato ai suoi articoli. Un articolo è collegato ai suoi commenti. Un commento è collegato al suo autore, che è di nuovo un utente, collegato ai suoi articoli. Ogni cosa è annodata ad altre cose, in una trama di relazioni. Questa trama, questa rete di cose collegate da fili, è ciò che si chiama grafo. E il punto di GraphQL è prendere sul serio questa forma: riconoscere che i dati, in realtà, sono fatti così.

Voglio mostrarti come REST affrontava questa rete, perché il contrasto è netto. In REST, come vedemmo, ogni cosa vive a un indirizzo separato. Gli utenti a un indirizzo, gli articoli a un altro, i commenti a un altro ancora. E allora, per raccogliere un utente insieme ai suoi articoli, e a ogni articolo con i suoi commenti, e a ogni commento con il suo autore, cosa devi fare? Un viaggio dopo l'altro. Vai a prendere l'utente. Poi torni e vai a prendere i suoi articoli. Poi, per ciascun articolo, vai a prendere i commenti. Un indirizzo dopo l'altro, tanti viaggi, per rimettere insieme a mano una trama che, nei dati, era già tutta connessa.

Voglio darti la mossa di GraphQL, perché è la sua bellezza. GraphQL dice: se i dati sono un grafo, allora fammelo percorrere, questo grafo, in una sola richiesta. Parti da un utente, segui il filo verso i suoi articoli, da ogni articolo segui il filo verso i suoi commenti, da ogni commento segui il filo verso il nome del suo autore, e riportami tutta questa forma connessa in un colpo solo. Una sola richiesta che cammina lungo i collegamenti e raccoglie l'intera trama che ti serve. Non tanti viaggi a indirizzi separati, ma un'unica passeggiata guidata attraverso la rete dei tuoi dati.

Voglio farti apprezzare perché questo sia profondo, perché è più di una comodità. C'è una ragione per cui è così potente: perché corrisponde a come i dati sono davvero, e a come una schermata ne ha davvero bisogno. I dati sono connessi: le connessioni non sono un dettaglio, sono parte essenziale dei dati, tanto quanto le cose che collegano. E una schermata, quasi sempre, ha bisogno di una fetta di questa rete: una pagina di profilo mostra l'utente, e i suoi articoli, e i commenti; cioè una porzione del grafo, con i suoi collegamenti. Chiedere una forma di connessioni, invece che una singola scheda piatta, è più fedele alla realtà, da entrambe le parti: come sono i dati, e come ti servono.

Voglio darti l'immagine che rende chiara questa idea, perché è quotidiana. Immagina di dover ricostruire una famiglia consultando gli uffici pubblici. Alla maniera dei tanti viaggi, andresti all'anagrafe per la persona, poi alla scuola per i figli, poi in un altro ufficio per la scuola di ciascun figlio: un viaggio per ogni pezzo, a sportelli separati, ricucendo tu i legami. Alla maniera del grafo, invece, ti rivolgi a un solo sportello e dici: dammi questa persona, i suoi figli, e la scuola che ciascun figlio frequenta. E lo sportello percorre lui i collegamenti per te, e ti restituisce l'intero albero in un'unica risposta. I legami li segue il servizio, non tu.

Voglio trarre la lezione generale, perché va oltre GraphQL. Ecco l'idea da portare con te: modellare i dati come un grafo di connessioni, e potersi muovere lungo quelle connessioni in un colpo solo, corrisponde alla realtà meglio che trattare tutto come schede separate e scollegate. Perché le connessioni sono i dati, tanto quanto le cose che collegano. Ricordi quando parlammo delle basi di dati, e delle relazioni tra le cose? Il grafo prende quelle relazioni e le mette in primo piano, le rende percorribili. Pensare per connessioni, e non solo per cose isolate, è un modo più ricco e più onesto di guardare a quasi ogni insieme di dati.

Per oggi ci fermiamo qui. Siamo entrati nel cuore concettuale, l'idea che il nome indica: i dati sono un grafo, una rete di cose collegate. Un utente ai suoi articoli, un articolo ai commenti, un commento al suo autore. Dove REST, con le cose a indirizzi separati, ti costringeva a tanti viaggi per ricucire questa trama, GraphQL ti lascia percorrere il grafo in una sola richiesta, seguendo i fili da una cosa all'altra. Ed è profondo perché corrisponde a come i dati sono davvero, e a come una schermata ne ha bisogno: una fetta connessa, non una scheda piatta. Come chiedere a un solo sportello un'intera famiglia. La lezione: le connessioni sono i dati, tanto quanto le cose che collegano. Nella prossima puntata vediamo la mappa di tutto: lo schema. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.