Spesso definita interfaccia di programmazione dell’applicazione o semplice API, un’interfaccia di programma di applicazione è una raccolta di istruzioni e standard di programmazione che consentono ai programmi per computer di comunicare direttamente tra loro. Molte società di software rilasciano le proprie API al pubblico e consentono agli sviluppatori di creare applicazioni basate sul loro servizio. Un esempio perfetto potrebbe essere DirectX di Microsoft, un insieme di API che consentono agli sviluppatori di creare giochi, funzionalità multimediali e applicazioni per il sistema operativo Windows.
L’interfaccia di un programma applicativo non è un’interfaccia utente, ma un’interfaccia da software a software. Infatti, consente ai programmi di comunicare tra loro senza alcuna conoscenza o intervento da parte dell’utente. Ad esempio, quando acquisti i biglietti per i concerti online con una carta di credito, il sito Web utilizza un’API per inviare i dati della tua carta a un’applicazione remota che ne verifica la validità. Una volta confermato il pagamento, l’applicazione risponde al sito dandogli l’ok all’emissione dei biglietti.
Le interfacce dei programmi applicativi progettate per fornire l’esecuzione più rapida di solito contengono insiemi di procedure, funzioni, variabili e strutture di dati. Un’API completa è spesso definita come quella che fornisce un livello di astrazione che impedisce allo sviluppatore di sapere in che modo la sua funzione è correlata ai livelli di astrazione inferiori. Ciò consente al programmatore di migliorare o riprogettare le funzioni all’interno dell’API senza violare il codice che ne ha bisogno.
L’interfaccia di un programma applicativo è abbastanza simile a Software-as-a-Service (SaaS). Ciò è dovuto principalmente al fatto che i programmatori non devono ricominciare da capo ogni volta che scrivono un’applicazione. Piuttosto che creare script per un programma di base progettato per gestire tutto, lo stesso programma può esternalizzare determinate responsabilità ad altre applicazioni in grado di svolgere il lavoro molto meglio. Ciò rende l’API molto utile per l’integrazione con un sito Web e varie applicazioni Web.
L’interfaccia del programma applicativo è diventata parte integrante del Web 2.0 e del fenomeno dei social network. Diverse comunità popolari lo utilizzano per condividere contenuti in un’architettura aperta. Gli utenti possono condividere commenti, foto, video e ogni tipo di informazione con applicazioni esterne, utilizzando un’API aperta per fornire nuove funzionalità alla propria comunità. Due classici esempi di API che abilitano questa condivisione sono la Facebook Application Platform e la piattaforma Open Social.
Le interfacce dei programmi applicativi sono fornite da diversi grandi nomi, tra cui Amazon®, eBay® e Google™. Se sviluppati in modo preciso e utilizzati correttamente, possono avvantaggiare sia l’azienda che fornisce il servizio che i suoi utenti. Forse il più grande svantaggio delle API è che dipendono dal servizio che fornisce. Ad esempio, se Google Maps™ venisse interrotto, la sua interfaccia del programma applicativo sarebbe essenzialmente inutile.