Cos'è un'API?
Le API semplificano lo sviluppo e l'innovazione del software consentendo alle applicazioni di scambiare dati e funzionalità in modo semplice e sicuro
Scopri le soluzioni IBM API Management
Persona impegnata al computer da una postazione di lavoro in piedi
Cos'è un'API?

Un'API, application programming interface o interfaccia di programmazione delle applicazioni, è un insieme di regole definite che consente ad applicazioni diverse di comunicare l'una con l'altra. Funge da livello intermedio per elaborare il trasferimento dati tra sistemi, consentendo alle aziende di aprire dati e funzionalità applicative verso l'esterno, rendendoli disponibili a sviluppatori di terze parti, business partner e dipartimenti organizzativi aziendali.

Le definizioni e i protocolli all'interno di un'API aiutano le aziende a collegare le numerose applicazioni che utilizzano quotidianamente, risparmiando tempo e smantellando eventuali componenti a scarsa integrazione, quali i silo, che ostacolano la collaborazione e l'innovazione. Per gli sviluppatori, la documentazione API fornisce l'interfaccia di comunicazione tra applicazioni, semplificando l'integrazione.

Come funziona un'API

Per comprendere il funzionamento delle API il modo più semplice è considerare un esempio comune: l'elaborazione dei pagamenti di terze parti. Quando un utente acquista un prodotto su un sito di e-commerce, gli può essere richiesto di "Pagare con Paypal" o un altro tipo di sistema di terze parti. Per effettuare la connessione questa funzione si affida alle API.

  • Nel momento in cui l'acquirente fa clic sul pulsante di pagamento, per recuperare le informazioni l'API effettua una chiamata, detta anche richiesta. Questa viene elaborata, da un'applicazione al server Web, tramite l'Uniform Resource Identifier (URI) dell'API includendo un verbo, intestazioni e, talvolta, un corpo della richiesta.
     

  • Dopo aver ricevuto una richiesta valida dalla pagina Web del prodotto, l'API effettua una chiamata al programma esterno o server Web, in questo caso il sistema di pagamento di terze parti.
     

  • Il server invia una risposta all'API con le informazioni richieste.
     

  • L'API trasferisce i dati all'applicazione richiedente iniziale, nel caso preso in esame il sito Web del prodotto.

Anche se il trasferimento dati varia a seconda del servizio Web utilizzato, le richieste e le risposte vengono tutte evase tramite un'API. Non vi è visibilità di tale attività a livello dell'interfaccia utente: le API scambiano dati all'interno del computer o dell'applicazione mentre all'utente la connessione appare ininterrotta.

Vantaggi delle API

Le API semplificano la progettazione e lo sviluppo di nuovi servizi e applicazioni, nonché l'integrazione e la gestione di quelli esistenti. Ma agli sviluppatori e alle organizzazioni in generale offrono altri vantaggi significativi.

Migliore collaborazione. L'azienda media utilizza quasi 1.200 applicazioni cloud (link esterno a ibm.com), molte delle quali non connesse. Le API consentono l'integrazione in modo che tali piattaforme e app possano comunicare tra loro in modo fluido. Grazie a questa integrazione, le aziende possono automatizzare i workflow e migliorare la collaborazione sul posto di lavoro. In mancanza delle API, la connettività sarebbe quasi impossibile per molte aziende, dando origine a silos di dati che compromettono produttività e prestazioni.

Innovazione accelerata. Le API offrono flessibilità, consentendo alle aziende di stabilire connessioni con nuovi partner commerciali, offrire nuovi servizi al mercato esistente e, infine, accedere a nuovi mercati in grado di generare enormi profitti e guidare la trasformazione digitale. Ad esempio, l'azienda Stripe ha iniziato come API con solo sette righe di codice. Da allora ha collaborato con molte delle maggiori società del mondo, diversificandosi per offrire prestiti e carte aziendali e raggiungendo un valore stimato di recente in 36 miliardi di dollari (link esterno a ibm.com).

Monetizzazione dei dati. Molte aziende scelgono di offrire API gratuitamente, almeno inizialmente, in modo da creare una platea di sviluppatori attorno al proprio marchio e stringere rapporti con potenziali partner commerciali. Se l'API concede l'accesso a risorse digitali preziose, l'azienda monetizza la sua posizione vendendo l'accesso. Si tratta della cosiddetta economia API. Quando AccuWeather (link esterno a ibm.com) ha lanciato un portale self-service per sviluppatori per la vendita di un'ampia gamma di pacchetti API, in soli 10 mesi è riuscita ad attirare 24.000 sviluppatori, vendere 11.000 chiavi API e creare una fiorente community.

Sicurezza del sistema. Le API separano l'applicazione richiedente dall'infrastruttura del servizio di risposta offrendo livelli di sicurezza durante la comunicazione tra i due. Ad esempio, le chiamate API in genere richiedono credenziali di autenticazione; le intestazioni HTTP, i cookie o le stringhe di query possono fornire ulteriore protezione durante lo scambio di dati e un API Gateway può controllare l'accesso per ridurre ulteriormente le minacce alla sicurezza.

Sicurezza e privacy degli utenti finali. Così come forniscono una protezione aggiuntiva all'interno di una rete, le API possono fornire un ulteriore livello di protezione personale agli utenti. Quando un sito Web richiede l'ubicazione di un utente, che viene fornita tramite un'API di localizzazione, l'utente può decidere se consentire o meno. Molti browser Web e sistemi operativi mobili, come iOS, hanno strutture di autorizzazione integrate quando le API richiedono l'accesso alle applicazioni e ai loro dati. Nel momento in cui l'app deve accedere ai file tramite un'API, file system come Windows, Mac e Linux utilizzano autorizzazioni per tale accesso.

API in azione: esempi comuni

Consentendo alle aziende di aprire l'accesso alle proprie risorse mantenendo sicurezza e controllo, le API sono diventate una caratteristica preziosa di moderne applicazioni di business e personali. Seguono alcuni tradizionali casi d'uso di API che gli utenti incontrano quasi ogni giorno:

  • Login universali: un comune esempio di API è la funzione che consente alle persone di accedere ai siti Web utilizzando i dettagli di accesso del proprio profilo Facebook, Twitter o Google. Questa comoda funzionalità consente a qualsiasi sito Web di sfruttare l'API di uno dei servizi più popolari per l'autenticazione rapida, risparmiando il tempo e il fastidio di impostare un nuovo profilo per ogni applicazione Web o nuova iscrizione.
     

  • Internet of Things (IoT): questi “dispositivi intelligenti” offrono, tramite API, funzionalità aggiuntive, come touchscreen con capacità di connessione a Internet e raccolta dati. Un frigorifero intelligente, ad esempio, può connettersi ad applicazioni di ricette o prendere e inviare appunti ai telefoni cellulari tramite messaggi testuali. Videocamere interne, collegandosi a varie applicazioni, permettono agli utenti di vedere i contenuti del frigorifero ovunque si trovino.
     

  • Raffronto delle tariffe di viaggio: i siti di prenotazione di viaggi aggregano migliaia di voli, mostrando le opzioni più economiche per ogni data e destinazione. Questo servizio è reso possibile tramite API che forniscono agli utenti dell'applicazione l'accesso alle informazioni più recenti sulla disponibilità di hotel e compagnie aeree, tramite un browser Web o l'applicazione della stessa società di prenotazione viaggi. Con un autonomo scambio di dati e di richieste, le API riducono drasticamente il tempo e gli sforzi necessari per verificare la disponibilità di voli o alloggi.
     

  • App cartografiche: oltre alle API di base che visualizzano mappe statiche o interattive, queste app utilizzano altre API e funzionalità per fornire agli utenti indicazioni stradali, limiti di velocità, punti di interesse, avvisi di traffico e altro ancora. Quando tracciano percorsi di viaggio o oggetti in movimento, ad esempio il furgone adibito alle consegne, gli utenti comunicano con un'API.
     

  • Twitter: ogni tweet contiene attributi principali descrittivi, tra cui l'autore, un ID univoco, un messaggio, data/ora di pubblicazione e metadati di geoposizione. Twitter mette a disposizione degli sviluppatori gli attributi principali di pubblici tweet e relative risposte e consente loro di inviare i tweet su altre pagine Web tramite l'API dell'azienda.
     

  • Applicazioni SaaS: le API sono una caratteristica importante per l'espansione dei prodotti software-as-a-service (SaaS). Piattaforme come CRM (strumenti di gestione relazioni con il cliente) spesso includono una serie di API incorporate che consentono alle aziende di integrare applicazioni già in uso, come messaggistica, media sociali e e-mail. Ciò riduce drasticamente il tempo dedicato al passaggio da un'applicazione all'altra per attività di vendita e marketing. Aiuta inoltre a diminuire o prevenire eventuali silos di dati tra dipartimenti organizzativi che utilizzano applicazioni diverse.

Tipi di API

Oggi la maggior parte delle API è costituita da API del servizio Web, o API Web, che espongono su Internet i dati e le funzionalità di un'applicazione. I quattro tipi principali di API Web sono:

  • API aperte: interfacce di programmazione di applicazioni open source a cui è possibile accedere tramite protocollo HTTP. Conosciute anche come API pubbliche, hanno endpoint dell'API definiti e precisi formati di richiesta e risposta.
     

  • API dei partner: collegano partner commerciali strategici. In genere, gli sviluppatori accedono a queste API in modalità self-service tramite un api developer portal pubblico. Per accedere alle API dei partner, devono comunque completare un processo di onboarding e ottenere credenziali di accesso.
     

  • API interne: rimangono nascoste agli utenti esterni. Queste API private non sono disponibili per gli utenti esterni all'azienda, bensì sono destinate a migliorare la produttività e la comunicazione tra i diversi team di sviluppo interni.
     

  • API composite: combinano multipli dati o API di servizio. Consentono ai programmatori di accedere a diversi endpoint in un'unica chiamata. Le API composite sono utili nell'architettura basata su microservizi, dove l'esecuzione di una singola attività può richiedere informazioni da più fonti.

Protocolli API

Con l'aumento dell'uso delle API Web, sono stati sviluppati alcuni protocolli per fornire agli utenti un insieme di regole definite o specifiche API che creano tipi accettati di dati, comandi e sintassi. In effetti, questi protocolli API facilitano lo scambio standardizzato di informazioni.

  • SOAP (Simple Object Access Protocol): creato con l'XML, il protocollo SOAP consente agli endpoint di inviare e ricevere dati tramite SMTP e HTTP. Le API SOAP semplificano la condivisione di informazioni tra app o componenti software in esecuzione in ambienti diversi o scritti in linguaggi diversi.
     

  • XML-RPC (XML-Remote Procedure Call): il protocollo XML-RPC si affida a uno specifico formato XML per trasferire dati. L'XML-RPC è precedente al SOAP, ma è molto più semplice e relativamente leggero in quanto utilizza una larghezza di banda minima.
     

  • JSON-RPC: analogamente all'XML-RPC, il protocollo JSON-RPC è una chiamata a procedura remota, ma per trasferire i dati utilizza la notazione JSON (JavaScript Object Notation) anziché l'XML.

  • REST (Representational State Transfer):  il protocollo REST è un insieme di principi dell'architettura API Web. Le API REST, note anche come API RESTful, sono API che rispettano determinati vincoli architettonici REST. È possibile creare API RESTful con protocolli SOAP, anche se generalmente i due standard sono considerati specifiche concorrenti.

Un tempo, l'API richiamava un'interfaccia connessa a un'applicazione creata con uno qualsiasi dei linguaggi di programmazione di basso livello, come Javascript. Le API moderne, invece, aderiscono ai principi REST e al formato JSON. Sono generalmente realizzate per l'HTTP, con conseguenti interfacce intuitive per gli sviluppatori, facilmente accessibili e ampiamente comprese dalle applicazioni scritte in Java, Ruby, Python e numerosi altri linguaggi.

API e servizi Web

Un servizio Web è un componente software a cui è possibile accedere e che facilita il trasferimento di dati tramite un indirizzo Web. Esponendo dati e funzionalità di un'applicazione ad altre applicazioni, ogni servizio Web è a tutti gli effetti un'API. Viceversa, non tutte le API sono un servizio Web.

Le API sono componenti software che fungono da intermediario tra due applicazioni non connesse. Sebbene anche i servizi Web connettano le applicazioni, necessitano di una rete per farlo. Mentre alcune API sono open source, i servizi Web sono generalmente privati e accessibili soltanto da partner approvati.

API, microservizi e sviluppo cloud-native

I microservizi rappresentano uno stile architettonico particolare, che suddivide un'applicazione in componenti più piccoli e indipendenti (detti appunto microservizi), connessi tramite API REST. La creazione di un'applicazione come raccolta di servizi distinti consente agli sviluppatori di concentrarsi su un componente applicativo indipendente dagli altri, rendendo le applicazioni più facili da testare, mantenere e scalare.

L'architettura basata su microservizi si è affermata con l'ascesa del cloud computing e, insieme a container e Kubernetes, è fondamentale per lo sviluppo di applicazioni cloud-native.

Soluzioni correlate
Automazione IBM Cloud

Scegli l'automazione intelligente per gestire il business e l'esercizio IT su larga scala per l'intera organizzazione.

Esplora l'automazione cloud
IBM® API Connect

Gestisci il ciclo di vita delle API su più cloud, aumenta la socializzazione e ottimizza l'impegno di monetizzazione nell'intero ecosistema aziendale.

Esplora IBM® API Connect
IBM Cloud Pak® for Integration

Usa l'automazione AI a loop chiuso per supportare multipli stili di integrazione.

Esplora Cloud Pak for Integration
Soluzioni di integrazione

Connetti, automatizza e sblocca il potenziale aziendale con le soluzioni di integrazione

Esplora le soluzioni di integrazione
Risorse Cosa sono i container?

I container, o contenitori, sono eseguibili che impacchettano il codice applicativo, insieme alle relative librerie e dipendenze, e possono essere eseguiti sull'IT tradizionale o su qualsiasi cloud.

Cos'è Kubernetes?

Kubernetes è una piattaforma open source di orchestrazione del contenitore che automatizza distribuzione, gestione e scalabilità delle applicazioni containerizzate.

The Forrester Wave™: soluzioni API Management, terzo trimestre 2022

Scopri come la gestione delle API sia fondamentale per promuovere il business digitale e in che modo si posiziona IBM rispetto ad altri fornitori nell'ambito dell'API Management, valutando attuali offerte e strategie, nonché la presenza sul mercato.

Fai il passo successivo

IBM® API Connect® è una soluzione sicura per la gestione delle API che attraverso un'esperienza intuitiva offre coerenza nella creazione, gestione, protezione, condivisione delle informazioni e monetizzazione delle API, contribuendo a intensificare la trasformazione digitale on-premise e sui vari cloud. Così tu e i tuoi clienti potrete potenziare le applicazioni digitali e stimolare l'innovazione in tempo reale. IBM API Connect è disponibile anche con altre capacità in IBM Cloud Pak for Integration, con cui potrai automatizzare la modernizzazione delle applicazioni e la gestione delle API nel percorso verso il cloud.

Esplora IBM® API Connect