Le application programming interface (API) risalgono agli anni Quaranta del secolo scorso, anche se gli si è dato un nome peculiare soltanto due decenni dopo. Il loro impiego è quindi antecedente alla nascita del personal computer e sono state sviluppate per permettere l’interazione tra librerie (insiemi di metodi e funzioni) e sistemi operativi.
Oggi il loro uso è diffuso e copre qualsiasi esigenza. Ci sono API pubbliche utili a seguire la Stazione spaziale internazionale (ISS) e anche per scoprire le peculiarità dei Pokémon.
API governance nell’Insurance: come costruire un ecosistema di partner
Cosa sono le application programming interface e come funzionano?
Le Application programming interface (API), in italiano “interfacce di programmazione delle applicazioni”, sono protocolli e definizioni utili all’interazione tra software o tra software e hardware.
Le API consentono di nascondere il modo in cui un software è implementato lasciandone accessibili quelle parti che permettono agli sviluppatori di interagire con questo e garantendo che, pure apportando modifiche al funzionamento di un sistema, le API possano continuare a funzionare correttamente.
Possono essere circoscritte all’interazione tra due sistemi oppure concepite per essere trasversali e consentire la piena interoperabilità.
Tra le tante celebri analogie usate per spiegare cosa sono le API, quella del postino è forse la migliore: deve recapitare una lettera e, giunto all’indirizzo del destinatario, può consegnarla senza particolari problemi oppure non riuscire a farlo (perché il destinatario è sconosciuto, perché l’indirizzo riportato sulla busta è errato o per altri motivi). Alla fine del proprio turno di lavoro il postino ritorna al punto di smistamento con o senza lettera, a dipendenza dell’esito della consegna.
Ora, rapportando all’online questo breve esempio attinto dalla vita analogica e considerando il mittente e il destinatario della lettera al pari di due applicazioni, è evidente che questi non siano mai entrati in contatto tra di loro. Il postino, ossia l’API, non necessità di conoscere il contenuto della busta per recapitarla e, non da ultimo, la procedura di consegna avviene se il protocollo è rispettato, ovvero se il nome del destinatario è giusto, se il suo indirizzo è esistente e se la busta è affrancata.
Quali sono i 4 tipi di API
Le classi di API sono principalmente quattro e la loro scelta dipende soprattutto dall’ambito nel quale devono essere utilizzate:
- Api orientate alle funzioni
- Api orientate ai file
- Api orientate ai protocolli
- Api orientate agli oggetti
Le Api per le funzioni sono destinate all’interazione tra software e hardware e, come suggerisce il termine, richiamano solo funzioni. Le Api per i file permettono di fare interagire più file per interrogare e scrivere dati, mentre quelle orientate ai protocolli permettono la standardizzazione della comunicazione tra sistemi in modo indipendente dai sistemi operativi e dall’hardware. Le API orientate agli oggetti sono tra le più flessibili da utilizzare.
Il discorso delle categorie, tuttavia, non può essere estinto limitandoci a quelle citate sopra, perché sono suddivise anche per protocolli e specifiche. Tra questi vanno citati:
Remote Procedure Call (RPC)
Protocollo ideato per consentire l’interazione tra agenti che risiedono su dispositivi (fissi o mobili) e reti diverse tra loro. Di fatto ha l’obiettivo di operare con procedure remote come se fossero avviate in locale. Rpc usa tipicamente due linguaggi, ossia Json e Xml e le Api vengono indicate con i nomi Json-Rpc e Xml-Rpc.
Va citato anche gRpc, creato da Google e garantisce la connessione tra servizi diversi nel rispetto di standard elevati di sicurezza e dell’autenticazione.
Simple Object Access Protocol (SOAP)
Protocollo basato su XML che trasmette le richieste mediante Http e Smtp, creato da Microsoft per essere usato su qualsiasi protocollo di rete. Tuttavia, oggi è usato soprattutto per i servizi web e per trasmettere dati via Http e Https.
Representational State Transfer (REST)
Non è un protocollo a tutti gli effetti, ma uno stile architetturale software, pensato per essere esteso a un vasto pubblico di utenti. Le Api Rest usano metodi Http per dialogare, tra queste Get, Post, Put, Delete, Head, Options.
GraphQL
Standard creato da Facebook e concepito per essere privato, con gli anni è stato rilasciato al pubblico del quale si è assicurato il favore, diventando uno standard. GraphQL è un linguaggio Open source per l’interrogazione di dati ed è usato negli ambiti mobile, IoT e su quelle piattaforme sulle quali è necessario attingere da diversi database.
Cosa fa un’API
Come detto, un’Api permette la comunicazione tra applicazioni o tra dispositivi e applicazioni. Poiché software e dispositivi sono sviluppati mediante linguaggi e strutture di dati differenti occorre trovare un modo affinché questi possano dialogare tra loro.
Inoltre, i modi in cui software e dispositivi vengono implementati possono cambiare nel tempo, sarebbe necessario ogni volta creare interfacce apposite per permettergli di interoperare. Le API, essendo indipendenti dalle specificità di ciò che deve comunicare, costituiscono una soluzione trasversale.
Gli attori che partecipano al funzionamento di un’API possono essere definiti:
- Client, ossia l’agente che effettua una richiesta di dati, detta “chiamata” (API call) e che deve necessariamente conoscere le regole utili affinché riceva risposta
- Server, che fornisce i dati richiesti dalla chiamata
Client e Server sono termini generici che rappresentano applicativi (anche web), software di diversa natura, dispositivi (per esempio IoT), database ma anche servizi fronte-end e back-end.
Come si crea un’API
La comunicazione tra gli agenti avviene mediante protocolli implementati e definiti dai Server, resi accessibili attraverso della documentazione specifica, nella quale sono contenute tutte le informazioni necessarie al corretto funzionamento delle API, tra le quali funzioni, argomenti, classi e tipi di ritorno. Qui la documentazione delle API di Twitter.
Google Maps – oltre a offrire spunti e derive inattese – è uno degli esempi di API più celebre, perché molto utilizzato dalle applicazioni per dispositivi mobili e per il web. Big G mette a disposizione una piattaforma attraverso la quale gli sviluppatori possono integrare le funzioni offerte.
Anche se di tipo pubblico, non tutte le application program interface sono utilizzabili a titolo gratuito, soprattutto quando i dati prelevati da un client contribuiscono all’erogazione di servizi commerciali.
A cosa serve un API Gateway
Un API Gateway è un’applicazione che permette la gestione delle API. Si situa tra il client che chiama e i servizi back-end, ognuno con le proprie API. Rappresenta un singolo punto di ingresso che aggrega e distribuisce le chiamate verso il servizio interrogato restituendo i risultati opportuni assicurandosi tra l’altro – laddove richiesto – che il chiamante abbia le necessarie autorizzazioni. Tra le altre cose permette di allestire statistiche sull’uso che viene fatto delle Api, cosa utile questa quando sono legate a una politica di licensing e relativa fatturazione.
Cosa sono le integrazioni API
Alla base delle application programming interface c’è la possibilità che i clienti recuperino dati dai server e, allargando un po’ lo spettro di questa affermazione, ci si rende conto che è la medesima filosofia dello scambio di qualsivoglia informazione online. Le integrazioni delle API variano però secondo alcuni parametri, tra i quali le policy di accesso ai dati e la sicurezza con cui i dati vengono richiesti e inviati. Le principali sono:
- API private, quelle disponibili all’interno di un’organizzazione e che vengono solitamente usate per mettere informazioni e funzionalità a disposizione di dipendenti, clienti, fornitori o altri stakeholder
- API pubbliche, ovvero accessibili a tutti. Sono messe a disposizione di chiunque voglia farne uso, due esempi sono quelli relativi alla Iss e ai Pokémon citati sopra ma ce ne sono un’ampia altra gamma. Google, per esempio, invita gli sviluppatori a creare API
- API partner, sono quelle per definizione né pubbliche né soltanto accessibili da chi fa parte di un circuito aziendale (per quanto grande sia). Sono usate per permettere la collaborazione tra diverse organizzazioni, per esempio per il tracciamento di attività o l’interazione tra software diversi
- API composite, combinano due o più API per creare operazioni correlate o in qualche modo dipendenti tra loro. Possono anche essere sviluppate per migliorare la velocità delle singole API.
Tutte però sono votate alla possibilità di fare convergere dati per renderli disponibili al chiamante.
Cyber attacchi alle API (Application Programming Interface): come difendersi
Cosa sono le API in Java
L’Application program interface in Java è l’insieme delle classi utili allo sviluppo di programmi. Contiene classi e interfacce che sono raccolte in pacchetti (package) predefiniti ai quali però si affiancano quelli che un programmatore eventualmente crea.
Con il rilascio di nuove versioni degli strumenti per la programmazione (Java development kit, Jdk) vengono aggiunte nuove classi così come quelle obsolete vengono rimosse.
Perché le API sono importanti
I motivi sono diversi, a partire dalla facilità con la quale permettono la comunicazione tra entità differenti. Le API permettono di snellire l’architettura e il design dei software, mantenendone gli standard di sicurezza e garantendone la scalabilità.
Un altro motivo è riconducibile ai numeri: oggi praticamente tutte le aziende che producono hardware, software e servizi web mettono a disposizione API a partner e utenti.
Nel 2018 Gartner ha previsto che nel giro di un lustro il 65% delle entrate di chi propone servizi web sarebbero state generate mediante Api e, al di là dell’attendibilità della previsione, è un dato che sottolinea il ruolo sempre più centrale che ricoprono per la diffusione di servizi e tecnologie in genere.
I vantaggi delle application programming interface per le aziende
Le aziende che necessitano di raccogliere dati per svolgere i rispettivi business hanno vantaggi di agilità, di abbattimento dei costi di sviluppo e di implementazione di flussi aziendali e dei software gestionali a uso interno.
Più in generale, come già in parte scritto, le API permettono di gestire meglio gli strumenti esistenti e di progettarne di nuovi, offrendo anche opportunità di innovazione.
Le aziende che creano servizi, software o dispositivi trovano nelle API un veicolo di diffusione dei prodotti perché la garanzia di interazione consente a clienti e partner di creare a loro volta servizi migliori a costi minori.
Benché l’economia delle API non rappresenti un modello finanziario, lo scambio di dati e servizi attraverso API crea un indotto di spessore che dovrebbe raggiungere i 40 miliari di dollari entro il 2030.
Esempi di API application programming interface in informatica
PayPal è un esempio di application programming interface diffuse. Chi ne fa uso collega le proprie informazioni finanziarie al suo account e, quando effettua un pagamento, il circuito interrogato non ha accesso alle informazioni bancarie collegate.
Le API di Google Maps offrono diverse funzioni. Non c’è soltanto il calcolo del tragitto tra due località, ci sono tutta una serie di servizi aggregati quali le informazioni di contatto e gli orari di apertura di negozi, le recensioni e tutti gli altri dati a corredo che, di fatto, sono generati mediante API.
Altrettanto vale per le app meteo o per quelle che propongono le quotazioni dei titoli sui mercati azionari. I tanti siti e le tante app che forniscono risultati in tempo reale delle partite di calcio di campionati più o meno popolari fanno uso delle API di servizi simili a questo.