L’acronimo API sta per Application Programming Interface (interfaccia di programmazione dell’applicazione) è un’interfaccia che collega diversi programmi per standardizzare la trasmissione dei dati e lo scambio di istruzioni tra le parti del programma. Le API nel senso letterale del termine sono librerie software utili a non duplicare codice e semplificare la manutenzione del software. Le Application Programming Interface sono software che deve essere sviluppato e mantenuto. In parole spicciole, sono interfacce che permettono alle APP di parlare con altre applicazioni.
Secondo Gartner, entro il 2023 il 65% delle entrate dei fornitori di servizi infrastrutturali globali sarà generato tramite API. E alla stessa data il mercato dell’API Management varrà 5,1 miliardi di dollari secondo Markets&Markets.
Ad oggi, ci sono oltre 14.000 API pubbliche utilizzate dai vari servizi e software di uso comune. Oltre a quelle di Facebook, le Application Programming Interface probabilmente più conosciute sono quelle fornite da Twitter, Google, eBay o Amazon. Non da meno Google, che mette a disposizione le Api di Google Maps in modo che qualsiasi sviluppatore possa utilizzarle per costruire mappe personalizzate.
Le API esistono da molto, e prima dell’avvento dell’ambiente/linguaggio JAVA (1995) erano chiamate “librerie di funzioni esterne”, o semplicemente “librerie”. Non sono, quindi una novità; la novità è che vengono fornite per automatizzare la connessione e l’accesso a funzionalità per non doverle creare ex-novo per la propria app e che l’imprenditoria ne ha scoperto le capacità reali.
In media, un APP, utilizza circa 15/20 API esterne.
Oggi tra le varie tendenze di utilizzo delle A.P.I., una delle più seguite, prevede l’utilizzo dei principi REST.
REST e SOAP e i protoccolli di “seconda scelta”
Nello scenario odierno del web, la concorrenza nell’utilizzo delle A.P.I. è tra il protocollo SOAP e REST.
La differenza tra i due deriva dalle loro radici: SOAP si è evoluto dalle tecnologie di chiamata a procedura remota utilizzate per estendere la programmazione modulare sulle connessioni di rete, mettendo in risalto il concetto di servizio; mentre REST propone una visione del Web incentrata sul concetto di risorsa.
Representational State Transfer (REST)
È stato introdotto nel 2000 da Roy Fielding in una celebre dissertazione (Architectural Styles and the Design of Network-based Software Architectures). A differenza di SOAP, REST non è un protocollo ma uno stile architetturale del software, che nasce volutamente per un pubblico esteso di utilizzatori. Le API REST utilizzano richieste (o metodi) HTTP per dialogare con le risorse (GET, POST, PUT, HEAD, DELETE, PATCH, OPTIONS).
Simple Object Access Protocol (SOAP)
SOAP è un protocollo definito “leggero” basato su XML per lo scambio di informazioni in un ambiente distribuito. SOAP permette l’implementazione di RPC in modo standard. É stato disegnato da Microsoft nel 1998, poi arricchito da IBM e Lotus. Le Application Programming Interface progettate con il protocollo SOAP trasmettono le richieste mediante HTTP o SMTP.
SOAP è stato progettato per essere indipendente da qualsiasi modello di programmazione particolare e da altre semantiche specifiche dell’implementazione dei servizi che ne fanno uso.
Non da meno sono i protocolli: RPC e JSON
RPC, ossia basato su “chiamate di procedura remote” (Remote Procedure Calls), si basa su un formato specifico di XML per trasferire i dati, è più vecchio di SOAP, ma più semplice e leggero in quanto utilizza una larghezza di banda minima;
JSON simile al punto precedente, supporta la comunicazione a due vie tra le app client e il server. Il server può inviare messaggi di richiamo ai client connessi, migliorando l’efficienza rispetto all’API REST
Le API per politica di rilascio
In relazione alla Release Policy, potremmo distinguere tre diverse classi di interfacce
API Pubbliche
Sono servizi accessibili pubblicamente. Sono talvolta usate anche con finalità di branding per incentivare l’utilizzo della piattaforma in modo professionale e tecnico, e incentivare l’innovazione (anche) open source. Pubblico non significa però gratuito, un’API pubblica può richiedere comunque il versamento di un corrispettivo quando ha finalità commerciali.
Questo approccio consente a terze parti di sviluppare app che interagiscono con l’Application Programming Interface e che possono rappresentare una fonte di innovazione.
API Private
Sono servizi utilizzati solo all’interno dell’azienda per il funzionamento specifico dell’applicativo e funzioni accessorie. Alla base della logica dei microservizi.
Questo approccio offre alle aziende un controllo delle API ottimale.
API Partner
Sono A.P.I. usate tra partner aziendali, ad esempio per fornire servizi di pagamento, tracciatura di attività, servizi, integrazione software.
Categorie di API per Protocollo e Specifiche.
Questo approccio può fornire flussi di reddito aggiuntivi, senza compromettere la qualità.
API composite
Le interfaccie di programmazione dell’applicazione composite, infine, combinano due o più A.P.I. diverse per rispondere a requisiti o comportamenti di sistema complessi.
Le API per area di applicazione
Esistono fondamentalmente quattro diverse classi di interfacce di programmazione:
- orientate alle funzioni
- orientate ai file
- orientate al protocollo
- orientate agli oggetti
La scelta della classe dipende dall’area di applicazione. Le interfacce di programmazione orientate alle funzioni sono interfacce relativamente complesse. Consentono, ad esempio, agli sviluppatori di accedere ai componenti hardware. In esse vengono richiamate sempre solo le funzioni. Le API orientate ai file consentono la connettività a livello di file. I dati possono quindi essere interrogati e scritti. L’interfaccia orientata al protocollo viene utilizzata per la comunicazione standardizzata tra programmi, ma è indipendente dai sistemi operativi o dall’hardware. Le Application Programming Interface orientate agli oggetti possono essere utilizzate in modo flessibile.
Quali vantaggi portano le interfaccie di programmazione dell’applicazione
I vantaggi portati dalle Application Programming Interface sono innumerevoli e molto importanti: in primis sicuramente hanno aumentato la fruibilità di molte applicazioni. Grazie alla capacità di mettere in comunicazione app diverse fra loro le aziende possono automatizzare i flussi di lavoro e migliorare il processo di collaborazione sul posto di lavoro.
Oltre ad avere un impatto positivo sull’integrazione tra applicazioni, le API permettono di risparmiare tempo di programmazione, consentendo, per estensione, di avere un effetto positivo sul bilancio.
Conclusione
In conclusione le Application Programming Interface in informatica stanno diventando un elemento chiave del progresso, perché portano una componente di integrazione e di scambio delle informazioni che rende più veloci gli accessi, assicurando nel contempo scalabilità, sicurezza e flessibilità delle piattaforme applicative realizzate.
Sono un eccellente intermediario software che favorisce l’innovazione per le imprese. Le API avranno un ruolo maggiore andando avanti e gli sviluppatori di app creano programmi progettati per lavorare insieme a una serie di altri software.
Pingback: 10 AI Bot e API per lo sviluppatore app - Alizeti HR