Episodio 132 – Le API

Episodio 132 – Le API

 
 
00:00 / 10:58
 
1X
 

No, non sono gli insetti, ma le EI PI AI, le interfacce che permettono di interagire con servizi e hardware di ogni genere e specie. Grazie a Giovanni per l’idea della puntata 🙂

Pillole di Bit (https://www.pilloledib.it) è un podcast indipendente realizzato da Francesco Tucci, se vuoi contribuire alla realizzazione puoi usare Paypal, Satispay e il vecchio IBAN (contattami per chiedermelo).
Se vuoi metterti con contatto con me puoi scegliere tra diverse piattaforme:
Telegram (un gruppo dove discutere degli argomenti del podcast)
Twitter del podcast e Twitter personale (il social che amo di piĂą)
La mail (se mi vuoi scrivere in modo diretto e vuoi avere piĂą spazio per il tuo messaggio, puoi anche scrivere crittografato usando la mia chiave pubblica PGP)

Rispondo sempre

Se ti serve della consulenza tecnica, puoi avere tutte le informazioni alla mia pagina professionale

Se questo podcast ti piace, parlane con un amico e faglielo ascoltare!
Realizzo un altro podcast, prova a ad ascoltarlo, è per veri nerd (e anche per chi vorrebbe diventarlo): GeekCookies


Ciao a tutti e bentornati all’ascolto di Pillole di Bit, questa è la puntata 132 e io sono, come sempre, Francesco.

Questa puntata vi arriva grazie all’idea di un ascoltatore che mi ha mandato un messaggio su Telegram, Giovanni e mi ha chiesto “perché una volta non parli delle API, di cosa sono, a che servono e di quali hai usato tu nella tua vita digitale?”
Quindi, ringrazio Giovanni per l’idea e partiamo subito col dire che non parlerò delle API, gli insetti che impollinano i fiori, ma delle EI PI AI, ben altra cosa, che sono l’acronimo di Application Programming Interface, traducibile in italiano con Interfaccia di Programmazione delle Applicazioni.
Come sempre faccio in questo podcast, partiamo dalle basi, in modo che anche chi non ha mai preso in mano un linguaggio di programmazione possa arrivare a comprendere l’argomento. 
Programmare è un’attività che a partire dal famoso hello world può arrivare a livelli di complessità molto elevati, come ad esempio scrivere un intero sistema operativo.
Il programmatore medio solitamente sta nel mezzo, per fortuna.
Programmare vuol dire scrivere del codice per risolvere un problema, il programmatore medio è molto pigro e scrive codice che può riutilizzare in futuro per altri programmi, quindi pensa a fare tutto molto parametrizzabile, in modo che fatta una cosa bene una volta non la dovrà fare più.
Vi faccio un esempio banale: ho bisogno di scrivere un log di alcuni eventi che succedono in un programma, invece di fare una chiamata che apre un file tutte le volte, poi si calcola il timestamp e poi scrive la riga con il messaggio, io mi scrivo una piccola funzione che fa tutto questo. Io la chiamo, gli passo 2 parametri: il nome del file di log e il messaggio, lei pensa a tutto il resto. L’ho scritto un volta e da ora in poi tutte le volte che avrò bisogno di scrivere un log non avrò più bisogno di sapere come è fatta quella funzione, la chiamo e lei lo fa.
Questa è una funzione.
Un insieme di funzioni, scritte per un utilizzo specifico è una libreria. Un esempio che mi viene in mente in questi giorni, che sto lavorando con un display a inchiostro elettronico è la libreria che mi permette di scrivere o disegnare sul display chiamando determinate funzioni, senza sapere cosa queste facciano, ma vedendone il risultato.
Ad esempio, per disegnare un rettangolo con la data di oggi io scrivo un comando che dice “disegna un rettangolo dal punto 0,0 al punto 200,100”, poi, in un altro comando dico “scrivi, a partire dal punto 2,2, la data di oggi”
Per farvi inquadrare mentalmente cosa ho fatto immaginate un display come un foglio quadrettato, il cui punto alle coordinate 0,0 è quello in alto a sinistra e man mano che incremento le X mi sposto a destra di un pixel e man mano che incremento le Y mi sposto in basso di un pixel.
La libreria fa un sacco di cose per me, come ad esempio dire, in un modo che io ignoro, al display, quali pixel far diventare neri e quali bianchi.
Sante siano sempre le librerie e chi le ha sviluppate e messe a disposizione!
Ma noi dovevamo parlare di EI PI AI. Ci arriviamo, ovviamente.
E ci arriviamo da un esempio pratico.
Tutti al mondo conoscono il sistema di messaggistica istantanea Whatsapp, quasi tutti, o pochi meno conscono un altro sistema di messaggistica istantanea: Telegram. Una delle grandi differenze è che su Telegram è possibile programmare dei BOT, dove per BOT si intende un programma che interagisce in una chat come se fosse una persona, ma che fa cose molto limitate e molto specifiche.
Ad esempio esiste un bot che si chiama trackbot al quale voi passate gli ID delle spedizioni di un corriere e lui man mano che la situazione del pacco cambia, vi manda un messaggio su telegram e vi dice a che punto sta il pacco senza che voi dobbiate ogni giorno andare a cercare sul sito del corriere stesso.
Chi ha programmato il bot ha dovuto per forza di cose interfacciarsi con i server di telegram e interfacciarsi con sistemi così complessi potrebbe essere stato molto difficile produrre queste funzionalità. Perché gestire un sistema di messaggistica è un’attività che richiede un’infrastruttura enorme, distribuita e gestita fin nei minimi dettagli. Oltre tutto questo deve essere sicura, mica possono dare l’accesso a tutti al loro DB dei messaggi, sarebbe una cosa impensabile. Ed ecco che qui nascono le EI PI AI.
Per poter lavorare con i server di Telegram basta conoscere le EI PI AI che loro mettono a disposizione per comunicare con loro e mandare o ricevere messaggi.
Il produttore di un servizio espone su Internet la modalitĂ  di comunicazione con i suoi servizi, lo documenta e permette a chi vuole o a chi paga per poterlo fare, di interagire.
Telegram lo fa gratis.
Ci si iscrive, poi si parla con un bot specifico, The Bothfather, esatto fa la caricatura a The Godfather, il Padrino, famosissimo film, e ci si fa dare la chiave di autenticazione per poter comunicare con i server telegram.
Quando si vuole iniziare a parlare con il server ci si presenta, si fornisce la chiave di autenticazione, che non va mai data a nessuno, e, in base alla documentazione che ci si deve studiare, si può iniziare ad interagire. Si possono leggere i messaggi, inviare i messaggi e fare altri milioni di cose che un bot su telegram può fare.
Io l’ho usato per programmare un sistema di antifurto e il mio progetto di casa domotica.
Bot Telegram ce n’è di ogni genere e specie, vi lascio nelle note dell’episodio il link alla directory con tutti i bot attualmente attivi su questo sistema.
Per rendere le cose ancora piĂą facili, esistono delle librerie che permettono di comunicare con le EI PI AI di telegram in modo ancora piĂą intuitivo, quindi io programmo usando una libreria che usa le EI PI AI di Telegram.
Ormai ci sono EI PI AI per interfacciarsi a milioni e milioni di servizi nel mondo tecnologico di oggi, provo a fare alcuni esempi.
Ci sono quelle proprie dei sistemi operativi per avere accesso all’hardware o a specifiche funzionalità del processore, come ad esempio calcoli matematici di un certo tipo
Ci sono quelle per comunicare in maniera diretta con le schede grafiche.
CI sono milioni di servizi web che rispondono a richieste con delle EI PI AI, anche tutti i servizi di open data della Pubblica Amministrazione, come i dati del trasporto pubblico o i dati metereologici.
Alcune EI PI AI sono gratuite, altre lo sono fino ad una certa quantitĂ  di richieste o fino ad una certa frequenza e poi diventano a pagamento e altre ancora sono a pagamento, tutto dipende da cosa decide chi le pubblica.
I tempi moderni impongono un aggiornamento continuo di funzionalità, quindi potrebbe capitare, purtroppo molto spesso, che le specifiche delle EI PI AI possano cambiare, anche dopo che avete sviluppato il vostro programma, magari perché sono state aggiunte delle funzionalità o perché il formato dei dati che potete chiedere cambia. Di solito il produttore avvisa per tempo sui suoi canali, è quindi furbo iscriversi ai suoi canali social o ai suoi feed di notizie per essere aggiornati e non ritrovarsi un giorno che il proprio programma smette di funzionare perché le EI PI AI sono cambiate. 


I contatti
Trovate tutti i contatti e i modi per sostenermi in questo progetto direttamente nelle note di questa puntata o sul sito www.pilloledib.it, mi trovate su twitter, nel gruppo telegram, il canale che preferisco e che ormai conta piĂą di 200 iscritti, oppure via mail, se volete scrivere di piĂą.
Se volete sostenermi con 5€ o più, compilate il form e vi spedisco gli adesivi a casa.
Potete anche fare come ha fatto Giovanni che si è abbonato al podcast e ha deciso che ogni mese mi dona qualcosa, si può fare con Paypal o con Patreon.
Grazie a chi ha donato in questa settimana!
Una nota per chi ha difficoltà con i link e con il gruppo telegram. Se nelle note dell’episodio della vostra app non vedete nessun link, ma solo il sito all’inizio cliccabile, cliccate lì e il vostro telefono vi porterà al sito vero con tutti i link fatti bene.
Non trovate il gruppo telegram cercandolo dentro telegram, l’ho dovuto rendere privato per evitare di essere sommerso dallo spam, quindi, per iscrivervi fate riferimento al link nelle note della puntata o nella barra laterale del sito, se lo aprite da desktop.

Il tip
Vi è mai successo di dover decidere che nome dare al telefono o al PC in modo che siano identificabili in rete al posto di quei bruttissimi iPhone di Marco, Davide-PC, Android di Sonia o PK67ef692? Ecco, io odio avere nomi sconclusionati in rete a casa, però spesso mi trovo a non sapere che nome dare ai miei dispositivi quando li devo configurare. C’è un sito da cui prendere un po’ di spunti, in modo da dare i nomi in base a un tema specifico.
Ok, è vero, non serve a niente, ma sfogliare la rete di casa e vedere tutti nomi dei personaggi di Toy Story, come a casa mia o come i pianeti del sistema solare, fa un certo effetto.
Aprite il vostro browser, andate sul sito namingschemes.com e buona ricerca!

Bene è proprio tutto, non mi resta che salutarvi e darvi appuntamento alla prossima puntata.