API: interfacce di programmazione per la trasmissione di dati.
API è un acronimo con cui man mano stiamo prendendo confidenza anche se un po’ più lentamente che con altri, forse perché non è così banale il concetto che rappresenta come non è banale l’impatto che le API stanno avendo nel campo dell’informatica, della finanza e non solo. Anche se già sappiamo cosa sono, è importante fermarsi a riflettere sull’importanza che questi elementi hanno nell’attuale panorama e come stanno permettendo al mondo finanziario di evolvere verso un nuovo paradigma in cui vince chi collabora e non più chi compete chiudendosi in fortino.
API: cosa sono e lo scambio d’istruzioni tra le parti del programma
L’acronimo API sta per Application Programming Interface, si riferisce quindi a delle interfacce che permettono la comunicazione tra diverse applicazioni software, anche se scritte in linguaggi di programmazione diversi. Sembra un concetto banale e scontato ma non è così, è rivoluzionario per quello che le API permettono di fare. Possiamo immaginarle come un punto di accesso a un altro software grazie al quale due programmi possono comunicare tra loro, scambiare dati e impartire comandi. Queste nuove libertà per i programmatori riguardano sia il software desktop che le applicazioni web e i dispositivi mobili: ora ovunque è possibile costruire un singolo programma in modo che diversi moduli comunichino tra loro grazie a queste interfacce che standardizzano la trasmissione dei dati e lo scambio di istruzioni tra le parti del programma.
API: a cosa servono e come interfacciano i programmatori con le componenti software
Compreso cosa sono le Application Programming Interfacee che aprono a un maggior numero di gradi di libertà il raggio di azione di un programmatore, possiamo scendere nel concreto e immaginare quali azioni diventano possibili in questo nuovo assetto in cui numerosi produttori di software mettono a disposizione le API per facilitare l’accesso dei programmatori ai componenti software. Gli sviluppatori possono utilizzare le interfacce messe a disposizione ad esempio anche da SAP, Amazon e Google, ma per fare cosa?
Per riutilizzare i codici delle app attraverso l’interazione tra programmi, per inserire contenuti nei servizi web, per inoltrare un comando del programmatore al software e riceverne la risposta oppure per controllare l’accesso da parte di altri programmatori.
Anche se non ce ne rendiamo spesso conto, le Application Programming Interface sono ben presenti anche nei siti che utilizziamo nel quotidiano permettendoci di effettuare alcune azioni che noi diamo per scontate ma che senza queste interfacce sarebbero impossibili. Pensate a quando vorrete prenotare un hotel a Parigi, ovviamente al miglior prezzo, tramite un sito che è in grado di trovarvelo. Cliccando su cerca avviamo il processo e da quel momento il sito web comunica con le API delle varie catene di hotel per verificare prezzi e disponibilità. Tutto avviene in pochi secondi e a nostra insaputa.
Come funzionano le interfacce API e il protocollo REST
Pur avendo un impatto sull’utente finale, le API sono e restano in mano ai programmatori a cui vengono fornite solitamente dagli sviluppatori di un software. Queste interfacce definiscono come le informazioni e i dati vengono ricevuti e restituiti tra i moduli e per comodità si utilizza uno standard specifico a cui il software esterno deve aderire. È qui che entra in gioco il protocollo REST e si parla di API REST quando esse utilizzano gli stessi comandi di HTTP rendendo lo scambio di informazioni semplice e più fluida anche la connessione dei programmatori all’API. La standardizzazione è certamente il fulcro di questo meccanismo, indipendentemente dal protocollo utilizzato per lo scambio. Essenziale perché tutto funzioni però, anche la preparazione dei programmatori che devono essere “istruiti” dettagliatamente sulla sintassi e sulle funzioni delle API che vanno a utilizzare.
Le 4 tipologie di API
Sono quattro le principali classi di Application Programming Interfaceche possiamo incontrare oggigiorno:
- orientate al protocollo, per la comunicazione standardizzata tra programmi, indipendentemente dai sistemi operativi o dall’hardware
- orientate alle funzioni, per accedere ai componenti hardware (in esse vengono richiamate sempre solo le funzioni)
- orientate ai file, consentono la connettività a livello di file.
- orientate agli oggetti possono essere utilizzate in modo flessibile.
Si può compiere anche una seconda distinzione, quella tra interfacce private e pubbliche. Nel primo caso si tratta di API disponibili solo all’interno di una certa azienda e che servono per lo più a connettere funzionalità proprietarie affinché i dipendenti vi accedano tramite reti private. Le interfacce pubbliche sono accessibili a tutti e vengono utilizzate dagli sviluppatori di software, spesso è proprio chi le rende pubbliche che li invita a utilizzarle e sviluppare API a sua volta.
Vantaggi dell’uso delle interfacce API
Sia gli sviluppatori interni che quelli esterni grazie a queste interfacce di programmazione hanno visto migliorare il proprio lavoro e hanno acquisito maggiore flessibilità e potere di “creazione”. Gli esterni collegandosi con altre applicazioni possono ampliare le funzionalità del proprio software liberamente, gli interni dotando i propri programmi di buone interfacce di programmazione possono beneficiare di una diffusione maggiore. E infine arrivano i benefici anche per utenti tutti che possono godere di servizi e applicazioni più comode e performanti proprio perché le Application Programming Interface consentono una più agile e ampia combinazione di diversi programmi che prima non si parlavano così bene.