Home topics Cosa è un'API (Application Programming Interface) Cos'è un'API (application programming interface)?
Scopri la soluzione API di IBM Iscriviti agli aggiornamenti sugli argomenti dell'AI
Illustrazione con collage di pittogrammi di ingranaggi, braccio robotico, telefono cellulare

Data di pubblicazione: 9 aprile 2024
Collaboratore: Michael Goodwin

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 è come 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 API per gli utenti e, in generale, rende le API più efficaci.

Guida all'automazione intelligente a livello aziendale

Scopri in che modo l'automazione intelligente può rendere le tue operazioni aziendali un vantaggio competitivo.

Contenuti correlati

Registrati per ricevere la guida e rendere operativo FinOps

Scopri come l'AI ottimizza gli agenti basati su API
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.

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 di dati (o database)

Usate per connettere applicazioni e sistemi di gestione di database.

API di sistemi operativi (locali)

Usate per definire in che modo le app usano i servizi e le risorse del sistema operativo.

API remote

Usate per definire come interagiscono le applicazioni su diversi dispositivi.

API web

Usate per consentire il trasferimento di dati e funzionalità su Internet attraverso il protocollo HTTP.

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

I 4 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.

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 parte integrante 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 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.2GraphQL 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.

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

SOAP è più deterministico e robusto (grazie al controllo dei tipi) e i sostenitori ritengono che sia più facile da usare grazie al supporto SOAP integrato in numerosi strumenti di sviluppo.3SOAP offre una conformità integrata e gli sviluppatori spesso lo considerano un protocollo più sicuro, più adatto a situazioni con severi requisiti 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 runtime 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.

Ulteriori informazioni su GraphQL e REST qui

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 funzioni 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

Microservicesè 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 delcloud computinge, insieme aicontainereKubernetes, è 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 vantaggi significativi per gli sviluppatori e le organizzazioni di grandi dimensioni.

Migliora la collaborazione

L'azienda media utilizza quasi 1.200 applicazioni cloud (link esterno a ibm.com), molte delle quali scollegate. Le API consentono l'integrazione in modo che tali piattaforme e app possano comunicare tra loro senza soluzione di continuità. 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 silo 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 ha iniziato come API con solo sette righe di codice. Da allora l'azienda ha collaborato con molte delle più grandi aziende del mondo. Stripe si è diversificata per offrire prestiti e carte aziendali e ha recentemente ricevuto una valutazione di 65 miliardi di dollari (link esterno a ibm.com).

Monetizzazione dei dati

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

Quando AccuWeather (link esterno a ibm.com) ha avviato il portale dello sviluppatore self-service per vendere un'ampia gamma di pacchetti API, ci sono voluti solo 10 mesi per attrarre 24.000 sviluppatori, vendendo 11.000 chiavi API. Questa mossa ha contribuito a costruire una fiorente comunità nel processo.

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 gateway APIpuò 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
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
Soluzioni di integrazione IBM

Collega, automatizza e sblocca il potenziale aziendale con le soluzioni di integrazione IBM.

Esplora le soluzioni di integrazione IBM
Soluzioni iPaaS

Collega applicazioni, dati, servizi e processi aziendali, ospitati on-premise, in un cloud privato o in un ambiente cloud pubblico.

Esplora le soluzioni IBM iPaaS
Fasi successive

Utilizza IBM API Connect per proteggere e gestire le API aziendali durante il loro ciclo di vita. Aiuta te e i tuoi clienti a creare, gestire, proteggere, socializzare e monetizzare costantemente le API aziendali ed è disponibile anche come API management platform altamente scalabile su IBM Marketplace e AWS.

Esplora API connect Prenota una demo live
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

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