My IBM Accedi Iscriviti

Cos'è un'API (application programming interface)?

9 Aprile 2024

Autori

Michael Goodwin

Editorial lead, Automation & ITOps

Cos'è un'API?

Un'API, o application programming interface, è un insieme di regole o protocolli che consentono alle applicazioni software di comunicare tra loro per scambiare dati, caratteristiche e funzionalità.

Le API semplificano e accelerano lo sviluppo di software e applicazioni consentendo agli sviluppatori di integrare dati, servizi e funzionalità da altre applicazioni, anziché svilupparle da zero. Le API offrono inoltre ai proprietari delle applicazioni un modo semplice e sicuro per rendere disponibili i dati e le funzioni delle applicazioni ai reparti all'interno dell'organizzazione. I proprietari delle applicazioni possono anche condividere o commercializzare dati e funzioni con business partner o terze parti.

Le API consentono la condivisione solo delle informazioni necessarie, mantenendo nascosti altri dettagli interni del sistema, il che contribuisce a ottimizzare la sicurezza del sistema. I server o i dispositivi non devono esporre completamente i dati: le API consentono la condivisione di piccoli pacchetti di dati, rilevanti per la richiesta specifica.

La documentazione API è simile a un manuale di istruzioni tecniche che fornisce dettagli su un'API e informazioni per gli sviluppatori su come lavorare con un'API e i suoi servizi. Una documentazione ben progettata promuove una migliore esperienza dell'API per gli utenti e, in generale, rende le API più efficaci.

Veduta aerea di uno snodo di autostrade

Rimani con la testa nel cloud 


Ricevi la newsletter settimanale Think per una guida esperta sull'ottimizzazione delle impostazioni multicloud nell'era dell'AI.

Come funzionano le API?

È utile pensare alla comunicazione API in termini di richiesta e risposta tra client e server. L'applicazione che invia la richiesta è il client e il server fornisce la risposta. L'API è il ponte che stabilisce il collegamento tra loro.

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, il sito potrebbe richiedere all'utente di "Pagare con PayPal" o un altro tipo di sistema di terze parti. Per effettuare la connessione questa funzione si affida alle API.

  • Quando l'acquirente fa clic sul pulsante per il pagamento, viene inviata una chiamata API per recuperare le informazioni. Questa è la richiesta. Questa richiesta viene elaborata, da un'applicazione al server web, attraverso l'URI (Uniform Resource Identifier) dell'API includendo un verbo, delle intestazioni e, talvolta, un corpo della richiesta.

  • Dopo aver ricevuto una richiesta valida dalla pagina web del prodotto, l'API chiama il 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, in questo caso il sito web del prodotto.

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

AI Academy

Prepararsi all'AI con l'hybrid cloud

Condotto dai migliori leader di pensiero di IBM, il programma di studi è stato progettato per aiutare i dirigenti aziendali ad acquisire le conoscenze necessarie per dare priorità agli investimenti in AI che possono favorire la crescita.

Tipi di API

Le API possono essere categorizzate in base al caso d'uso, tra cui API di dati, API di sistemi operativi, API remote e API web.

API web

Le API web consentono il trasferimento di dati e funzionalità su Internet tramite il protocollo HTTP.

Attualmente, la maggior parte delle API sono API web. Le API web sono delle API remote (ovvero l'API usa protocolli per manipolare le risorse esterne) che espongono i dati e le funzionalità di un'applicazione su Internet.

I quattro tipi principali di API web sono:

API aperte

Le API aperte sono interfacce di programmazione di applicazioni open source a cui è possibile accedere attraverso il protocollo HTTP. Conosciute anche come API pubbliche, hanno endpoint delle API definiti e formati di richieste e risposta.

API partner

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

API interne

Le API interne, o private, rimangono nascoste agli utenti esterni. Queste API private non sono disponibili per gli utenti esterni all'azienda. Al contrario, le organizzazioni li usano per migliorare la produttività e la comunicazione tra i diversi team di sviluppo interni.

API composite

Le API composite combinano più 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.

Altri tipi di API

I tipi meno comuni di API includono:

  • API di dati (o database), utilizzate per collegare applicazioni e sistemi di gestione del database

  • API del sistema operativo (o locali), utilizzate per definire come le app utilizzano i servizi e le risorse del sistema operativo

  • API remote, utilizzate per definire come le applicazioni interagiscono su dispositivi diversi

Esempi di API

Poiché le API consentono alle organizzazioni di aprire l'accesso alle proprie risorse mantenendo sicurezza e controllo, sono diventate una caratteristica preziosa di moderne applicazioni aziendali e personali.

Ecco alcuni esempi di API che gli utenti incontrano spesso:

Accessi universali

Un esempio di API popolare è la funzione che consente alle persone di accedere ai siti web usando i dettagli di accesso del profilo Facebook, X o Google. Questa comoda funzione consente a qualsiasi sito web di usare un'API da uno dei servizi più popolari per un'autenticazione rapida. Questa funzionalità consente agli utenti di risparmiare tempo e fatica nella configurazione di un nuovo profilo per ogni applicazione web o nuova iscrizione.

Internet delle cose (IoT)

Attraverso le API, questi "dispositivi intelligenti" offrono funzionalità aggiuntive, quali touchscreen abilitati per Internet e raccolta dati. Un frigorifero intelligente, ad esempio, può collegarsi ad applicazioni di ricette o prendere e inviare appunti sui telefoni cellulari usando messaggi di testo. Videocamere interne, collegandosi a varie applicazioni, consentono agli utenti di vedere i contenuti del frigorifero ovunque si trovino.

Confronti tra le prenotazioni di viaggi

I siti di prenotazione di viaggi aggregano migliaia di voli, mostrando le opzioni più economiche per ogni data e destinazione. Le API abilitano questo servizio fornendo agli utenti dell'applicazione l'accesso alle informazioni più recenti sulla disponibilità di hotel e compagnie aeree.

Questo accesso è disponibile attraverso un browser web o l'applicazione della società di prenotazione di viaggi. Con uno scambio autonomo di dati e di richieste, le API riducono drasticamente il tempo e gli sforzi necessari per verificare la disponibilità di voli o alloggi.

App di navigazione

Le app di navigazione usano API fondamentali che visualizzano mappe statiche o interattive. Queste app usano anche altre API e funzionalità per offrire agli utenti indicazioni stradali, limiti di velocità, punti di interesse, avvisi sul traffico e altro ancora. Gli utenti comunicano con un'API quando tracciano percorsi di viaggio o monitorano elementi in movimento, come un veicolo per la consegna.

Social

Le aziende di social usano le API per consentire ad altre entità di condividere e incorporare nei propri siti i contenuti presenti nelle app dei social. Ad esempio, l'API di Instagram consente alle aziende di incorporare la griglia di Instagram sul proprio sito web e di aggiornare automaticamente la griglia quando gli utenti aggiungono nuovi post.

Applicazioni SaaS

Le API sono una parte importante della crescita dei prodotti software as a service (SaaS). Piattaforme come CRM (strumenti di gestione della relazione con il cliente) spesso includono diverse API integrate che consentono alle aziende di integrarsi con le applicazioni già in uso, come messaggistica, social ed e-mail.

Questa integrazione riduce drasticamente il tempo dedicato al passaggio da un'applicazione all'altra per attività di vendita e marketing. Aiuta inoltre a ridurre o prevenire eventuali silo di dati tra dipartimenti che usano applicazioni diverse.

Protocolli API, stili architettonici e linguaggi

Un tempo l'API richiamava un'interfaccia collegata a un'applicazione creata con uno qualsiasi dei linguaggi di programmazione di basso livello, come Javascript. Tuttavia, le API moderne variano nelle loro architetture e nell'uso dei formati di dati. 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.

L'aumento dell'uso delle API web ha portato allo sviluppo e all'uso di determinati protocolli, stili, standard e linguaggi. Queste strutture offrono agli utenti un set di regole definite o specifiche di API che creano tipi di dati, comandi e sintassi accettati. In effetti, questi protocolli API facilitano lo scambio standardizzato di informazioni.

SOAP (simple object access protocol)

SOAP è una specifica di protocollo di messaggistica leggera basata su XML che consente agli endpoint di inviare e ricevere dati attraverso una serie di protocolli di comunicazione tra cui SMTP (simple mail transfer protocol) e HTTP (hypertext transfer protocol). SOAP è indipendente, il che consente alle API SOAP di condividere informazioni tra app o componenti software eseguiti in ambienti diversi o scritti in linguaggi diversi.

Chiamata di procedura remota (RPC)

La chiamata di procedura remota (RPC) è un protocollo che fornisce il paradigma di comunicazioni di alto livello usato nel sistema operativo. RPC presuppone l'esistenza di un protocollo di trasporto di basso livello, come il protocollo di controllo della trasmissione/protocollo Internet (TCP/IP) o il protocollo datagramma utente (UDP), per trasportare i dati dei messaggi tra programmi di comunicazione.

RPC implementa un sistema logico di comunicazione client-to-server progettato appositamente per il supporto delle applicazioni di rete. Il protocollo RPC consente agli utenti di lavorare con procedure remote come se le procedure fossero locali.1

XML-RPC (XML- remote procedure call)

Il protocollo XML-RPC si affida a uno specifico formato XML per trasferire i dati. L'XML-RPC è precedente al SOAP, ma è più semplice e relativamente leggero in quanto usa una larghezza di banda minima.

JSON-RPC

Come XML-RPC, JSON-RPC è una chiamata di procedura remota che usa JSON (JavaScript Object Notation) anziché XML. JSON è un formato leggero per lo scambio di dati semplice da analizzare e usa coppie di nomi/valori ed elenchi di valori ordinati. Poiché JSON usa strutture di dati universali, può essere usato con qualsiasi linguaggio di programmazione.

gRPC

gRPC è un framework RPC open-source ad alte prestazioni, sviluppato inizialmente da Google. gRPC usa il protocollo di rete HTTP/2 e il formato dei dati Protocol Buffers ed è comunemente usato per collegare i servizi in un'architettura a microservizi.

WebSocket

Le API WebSocket consentono la comunicazione bidirezionale tra client e server. Questo tipo di API non richiede la creazione di un nuovo collegamento per ogni comunicazione: una volta stabilito il collegamento, consente uno scambio continuo. Ciò rende le API Web Socket ideali per la comunicazione in tempo reale.

REST (representational state transfer)

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. Le API REST usano richieste HTTP come GET, PUT, HEAD e DELETE per interagire con le risorse. REST rende i dati disponibili come risorse, con ciascuna risorsa rappresentata da un URI univoco. I client richiedono una risorsa fornendo il relativo URI.

Le API REST sono stateless: non salvano i dati dei client tra una richiesta e l'altra. È possibile creare API RESTful con protocolli SOAP, ma i professionisti di solito considerano i due standard come specifiche concorrenti.

graphql

GraphQL è un linguaggio di query open source e un runtime lato server che specifica come i client devono interagire con le API.GraphQL consente agli utenti di effettuare richieste API con poche righe, anziché dover accedere a endpoint complessi con molti parametri. Questa funzionalità può semplificare la generazione e la risposta alle query API, in particolare alle richieste più complesse o specifiche destinate a più risorse.

REST vs. SOAP

SOAP e REST rappresentano diversi approcci alla progettazione API, descrivendo regole e standard per il modo in cui un'API deve interagire con altre applicazioni. SOAP è un protocollo mentre REST è un insieme di vincoli che costituiscono uno stile architettonico. Entrambi usano HTTP per scambiare informazioni.

L'architettura REST è spesso considerata un'alternativa più semplice a SOAP perché è leggera, flessibile, trasparente e relativamente facile da usare; SOAP richiede agli utenti di scrivere più codice per completare ogni attività rispetto a REST.

SOAP è più deterministico e robusto (grazie al controllo dei tipi) e i suoi sostenitori sostengono che sia più facile da usare a causa del supporto SOAP integrato in molti strumenti di sviluppo.3 SOAP offre una conformità integrata e gli sviluppatori spesso lo considerano un protocollo più sicuro, più adatto a situazioni con requisiti rigorosi di integrità dei dati.

I sistemi RESTful supportano la messaggistica in diversi formati, come ad esempio testo normale, HTML, YAML, XML e JSON, mentre SOAP consente solo XML. Ognuno ha i suoi punti di forza e la "scelta giusta" potrebbe dipendere dal caso d'uso. Tuttavia, la possibilità di supportare più formati per la memorizzazione e lo scambio di dati è una delle ragioni per cui REST è una scelta prevalente per la creazione di API pubbliche.

REST vs. GraphQL

GraphQL è un linguaggio di query e un tempo di esecuzione API che Facebook ha sviluppato internamente nel 2012 prima di diventare open source nel 2015. GraphQL e REST sono entrambi stateless, usano un modello client/server e usano HTTP. GraphQL risolve alcune limitazioni di REST, ad esempio, fornendo la possibilità di indirizzare con maggiore precisione le risorse desiderate con una singola richiesta.

Le API REST seguono una struttura fissa e restituiscono sempre un intero set di dati per un oggetto specifico. Se la richiesta è più complessa, ad esempio su più risorse, il client deve inviare richieste separate per ogni risorsa. Queste limitazioni possono portare a problemi di under o over-fetching.

Né le API REST, né GraphQL sono intrinsecamente superiori: sono strumenti diversi, adatti a compiti diversi.

REST è generalmente più facile da implementare e può essere una buona scelta quando si preferisce un protocollo di comunicazione semplice e memorizzabile nella cache con rigorosi controlli di accesso (per siti di e-commerce rivolti al pubblico come Shopify e GitHub, ad esempio).

Le API GraphQL consentono un recupero dei dati più flessibile ed efficiente, che può migliorare le prestazioni del sistema e la facilità d'uso per gli sviluppatori. Queste caratteristiche rendono GraphQL particolarmente utile per la creazione di API in ambienti complessi con requisiti front-end in rapida evoluzione.4

API, servizi web e microservizi

API e servizi Web

Un servizio web è un componente software Internet che facilita il trasferimento di dati su una rete. 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 hanno funzione di intermediario tra due applicazioni non collegate. Sebbene anche i servizi web colleghino le applicazioni, hanno bisogno di una rete per farlo. I servizi web sono in genere privati e solo gli utenti approvati possono accedervi.

API, microservizi e sviluppo cloud-native

I microservizi sono uno stile architettonico che divide un'applicazione in componenti indipendenti più piccoli, spesso connessi usando API REST. La creazione di un'applicazione come raccolta di servizi separati consente agli sviluppatori di lavorare su un componente dell'applicazione indipendentemente dagli altri e semplifica il test, la manutenzione e la scalabilità delle applicazioni.

L'architettura dei microservizi è diventata più diffusa con l'ascesa del cloud computing e, insieme ai container e a Kubernetes, è fondamentale per lo sviluppo di applicazioni cloud-native.

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. Offrono anche benefici significativi per gli sviluppatori e le organizzazioni di grandi dimensioni.

Migliora la collaborazione

L'azienda media utilizza quasi 1.200 applicazioni cloud, molte delle quali scollegate. Le API ne consentono l'integrazione, in modo che tali piattaforme e app possano comunicare tra loro in modo ottimale. 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 e darebbe origine a silos di dati che compromettono produttività e prestazioni.

Innovazione accelerata

Le API offrono flessibilità, consentendo alle aziende di stabilire connessioni con nuovi business partner e offrire nuovi servizi al mercato esistente. Questa flessibilità consente inoltre alle aziende di accedere a nuovi mercati che possono aumentare i rendimenti e guidare la trasformazione digitale.

Ad esempio, l'azienda Stripe è nata come API, con sole sette righe di codice. Da allora l'azienda ha collaborato con molte tra le più grandi aziende del mondo. Stripe ha diversificato l'offerta per offrire prestiti e carte aziendali e ha ricevuto una valutazione recente di 65 miliardi di dollari.

Monetizzazione dei dati

Molte aziende scelgono di offrire API gratuitamente, almeno inizialmente, così da creare un pubblico di sviluppatori attorno al proprio brand e stringere rapporti con potenziali partner. Se l'API concede l'accesso ad asset digitali preziosi, un'azienda monetizza la propria posizione vendendo tale accesso. Questa pratica viene definita "API economy".

Quando AccuWeather ha avviato il suo portale di sviluppo self-service per vendere un'ampia gamma di pacchetti API, ha attirato 24.000 sviluppatori in soli 10 mesi, vendendo 11.000 chiavi API. Questa mossa ha inoltre contribuito a dare vita a una fiorente community.

Sicurezza del sistema

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

Sicurezza e privacy degli utenti

Le API forniscono una protezione aggiuntiva all'interno di una rete. Possono anche fornire un ulteriore livello di protezione per gli utenti personali. Quando un sito web richiede la posizione di un utente (un'API di localizzazione fornisce queste informazioni), l'utente può decidere se consentire o rifiutare questa richiesta.

Molti browser web e sistemi operativi desktop e mobili dispongono di strutture di autorizzazione integrate. Quando un'app deve accedere ai file attraverso un'API, sistemi operativi come iOS, macOS, Windows e Linux, usano le autorizzazioni per tale accesso.

Soluzioni correlate

Soluzioni correlate

IBM webMethods

Integra le tue applicazioni e automatizza il lavoro con la piattaforma multicloud ibrido IBM webMethods.

Esplora webMethods
Software e soluzioni di integrazione

Sblocca il potenziale aziendale con le soluzioni di integrazione di IBM, collegando applicazioni e sistemi per accedere rapidamente e in modo sicuro ai dati critici.

Esplora le soluzioni di cloud integration
Servizi di consulenza cloud 

Sblocca nuove funzionalità e promuovi l'agilità aziendale con i servizi di consulenza cloud di IBM. Scopri come creare insieme soluzioni, accelerare la trasformazione digitale e ottimizzare le prestazioni attraverso strategie di hybrid cloud e partnership di esperti.

Servizi cloud
Fai il passo successivo

Semplifica il tuo percorso di trasformazione digitale con potenti strumenti di integrazione. Scopri in che modo le soluzioni leader di IBM possono connettere, automatizzare e proteggere le tue applicazioni aziendali.

Inizia con l'integrazione Esplora le soluzioni specializzate
Note a piè di pagina

1Remote Procedure Call”, ibm.com, 3 novembre 2023.

2What is GraphQL”, Chrystal R. China, ibm.com, 8 dicembre 2023.

3
Comparing REST and SOAP”, ibm.com, 5 marzo 2021.

4GraphQL vs. REST API: What’s the difference?”, Chrystal R. China, ibm.com, 29 marzo 2024.