Ciao, e benvenuto nella prima puntata della quarantatreesima stagione di questo podcast. Nelle ultime due stagioni siamo stati dietro le quinte: Redis, la memoria velocissima, e Kafka, il registro degli eventi, lavorano nascosti, nel profondo dei sistemi. Oggi saliamo alla porta d'ingresso, al punto in cui i programmi si affacciano e si parlano tra loro: le API. E in particolare lo stile più diffuso sul web per costruirle, che dà il titolo alla stagione: REST. Oggi capiamo cos'è un'API, e perché il web moderno ne è letteralmente pieno.
Partiamo da un fatto che diamo per scontato, perché ci apre gli occhi. Il web che conosci è fatto per gli esseri umani: pagine da leggere, link da cliccare, moduli da compilare. Tu apri una pagina, la guardi, premi un bottone. Ma dietro quella scena, c'è un mondo intero in cui non sono le persone a comunicare, bensì i programmi tra loro. L'applicazione sul tuo telefono chiede dei dati a un server lontano. Un servizio ha bisogno delle informazioni di un altro servizio. Un sito mostra la mappa presa da un altro sistema, il meteo preso da un altro ancora. Sotto la superficie, è tutto un dialogo tra programmi.
Voglio darti la definizione di API, perché è più semplice di quanto sembri. Un'API, cioè un'interfaccia di programmazione, è semplicemente il modo definito in cui un programma offre le sue capacità ad altri programmi. È uno sportello dove un servizio dichiara: ecco cosa puoi chiedermi, ed ecco come chiedermelo. Non ti fa vedere come lavora dentro, i suoi ingranaggi, i suoi segreti: ti offre solo un banco ordinato di richieste possibili. Chi vuole qualcosa si presenta allo sportello, fa la sua domanda nel modo previsto, e riceve la risposta. È un contratto tra chi offre un servizio e chi lo usa.
Voglio darti l'immagine che rende chiara questa idea, perché la userai sempre. Pensa al menù di un ristorante. Il menù ti dice cosa puoi ordinare, e come ordinarlo: i piatti disponibili, con i loro nomi. Non ti spiega come funziona la cucina, chi cucina, quali pentole usa: ti dà solo l'elenco ordinato di ciò che puoi chiedere, e tu ordini da lì. Un'API è esattamente questo, ma per i programmi: un menù di richieste possibili, che un servizio offre agli altri. Tu, programma, leggi il menù, ordini ciò che ti serve, e la cucina, che resta nascosta, ti prepara la risposta.
Voglio spiegarti perché serva un menù ben fatto, perché è il cuore del problema. Se ogni servizio offrisse il suo menù in un modo tutto suo, capriccioso, diverso da tutti gli altri, chi vuole usarlo dovrebbe imparare da zero ogni volta, decifrare le regole di ognuno. Sarebbe un caos. Quindi la domanda diventa: come si organizza bene un menù per programmi? Come si costruisce un'interfaccia che sia ordinata, prevedibile, facile da capire e da usare? Su questo, nel corso degli anni, sono nati diversi stili, diverse filosofie. E il più diffuso di tutti, quello che ha vinto sul web, è proprio REST.
Voglio anticiparti l'idea geniale di REST, perché è la lente di tutta la stagione. Cos'ha di speciale REST? La sua intuizione di fondo è bellissima nella sua semplicità: far parlare i programmi usando il web stesso. Cioè, invece di inventare un meccanismo tutto nuovo, REST riusa la stessa macchina che già fa funzionare i browser: gli stessi indirizzi delle pagine, le stesse azioni, lo stesso protocollo che ricordi dalla stagione sulla rete. Il web era stato pensato per far arrivare pagine ai browser; REST dice: usiamo quella stessa macchina, così ben rodata, per far parlare i programmi tra loro. È nato così, tra l'altro: da uno studio che descriveva perché il web funzionasse così bene, e che proponeva di applicarne i principi ovunque.
Voglio anticiparti dove andremo, perché il viaggio ha una direzione chiara. Nelle prossime puntate scaveremo dentro questa idea. Vedremo come REST organizza tutto attorno alle risorse, alle cose, invece che alle azioni. Come dà a ogni cosa un indirizzo. Come agisce con pochissimi verbi universali. Come non tiene memoria tra una richiesta e l'altra. Come risponde con un linguaggio di codici condiviso. E come tutto questo faccia delle API il tessuto connettivo del web moderno. Un passo alla volta, tenendo sempre a mente lo sportello, il menù, il dialogo tra programmi.
Per oggi ci fermiamo qui. Abbiamo aperto la stagione salendo dalla sala macchine alla porta d'ingresso: le API, il modo in cui i programmi si parlano. Un'API è un'interfaccia, uno sportello dove un servizio dichiara cosa gli puoi chiedere e come, senza mostrarti i suoi ingranaggi: come il menù di un ristorante, ma per programmi. Serve che questo menù sia ben organizzato, e lo stile più diffuso per farlo è REST, la cui idea geniale è far parlare i programmi usando il web stesso, la stessa macchina che muove i browser. Nella prossima puntata entriamo nel cuore di REST: tutto è una risorsa. Nelle note trovi qualche spunto. Se ti è utile, condividila. Grazie per l'ascolto, e ci sentiamo alla prossima.