Cos'è un'API?

Un'interfaccia di programmazione delle applicazioni (API) costituisce un modo in cui un software utilizza le funzioni di un altro software.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definire cosa è una "API"
  • Spiegare cosa sono le chiamate API, gli endpoint API, lo schema API e l'integrazione API
  • Descrivere le API Web, le API SOAP e le API REST
  • Comprendere le protezioni di sicurezza delle API

Argomenti correlati


Vuoi saperne di più?

Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.

Fai riferimento all'Informativa sulla privacy di Cloudflare per scoprire come raccogliamo ed elaboriamo i tuoi dati personali.

Copia link dell'articolo

Che cos'è un'interfaccia di programmazione dell'applicazione (API)?

Un'interfaccia di programmazione dell'applicazione (API, Application programming interface) è un insieme di regole che consente a un software di trasmettere dati a un altro software.

Le API consentono agli sviluppatori di evitare inutili duplicazioni di lavoro. Invece di creare e ricreare funzioni applicative già esistenti, gli sviluppatori possono incorporare quelle esistenti nelle loro nuove applicazioni, mettendo le richieste nel formato richiesto dall'API.

Un'API è un'"interfaccia", ovvero un modo in cui un elemento interagisce con un altro. Ad esempio, un bancomat dispone di un'interfaccia, ovvero uno schermo e diversi pulsanti, che consentono ai clienti di interagire con la propria banca e richiedere determinati servizi, come ad esempio il prelievo di contanti. Analogamente, un'API è il modo in cui un software interagisce con un altro programma per ottenere i servizi di cui ha bisogno.

Immaginiamo che Arianna crei un sito web che ha l'obiettivo di aiutare i pendolari a controllare il traffico autostradale prima di andare al lavoro. Arianna potrebbe dedicare molto tempo e denaro per configurare un complesso sistema di tracciamento autostradale e fornire queste informazioni agli utenti del suo sito web. Tuttavia, queste funzionalità esistono già, poiché questo sistema di tracciamento è già stato creato da altri. Invece di riscoprire l'acqua calda, il sito web di Arianna utilizza un'API offerta da un servizio esterno di monitoraggio del traffico autostradale. Grazie a questa API, Arianna può concentrarsi sullo sviluppo di altri aspetti del suo sito web.

Cos'è una chiamata API?

Una chiamata API, anche nota come richiesta API, è un messaggio indirizzato a un'API che ne attiva l'utilizzo.

Facendo riferimento all'esempio, Arianna costruisce il suo sito web in modo tale che, al caricamento, generi automaticamente una chiamata API al servizio di tracciamento autostradale. La risposta proveniente da quel servizio ritorna al suo sito web e gli permette di mostrare le informazioni più recenti sul traffico.

Per funzionare, le chiamate API devono essere in un formato conforme a determinati requisiti, stabiliti dall'API interpellata. I requisiti dell'API sono chiamati "schema". Lo schema descrive anche i tipi di risposte che vengono fornite per ogni richiesta.

Supponiamo che un pendolare utilizzi il sito web di Jennifer per controllare il traffico sull'autostrada A1. Il sito web invia una chiamata API per fornire queste informazioni: un messaggio che riporta la dicitura "Autostrada A1". Il server API del servizio di monitoraggio del traffico riceve questo messaggio e risponde con i tempi di percorrenza sull'autostrada A1. Immaginiamo lo schema dell'API in questo modo:

Chiamata API Risposta API
"Autostrada A1" Tempi di percorrenza sull'autostrada A1
"Autostrada A22" Tempi di percorrenza sull'autostrada A22
"Autostrada A4" Tempi di percorrenza sull'autostrada A4

(Si noti che questo è un esempio molto semplificato. Nella realtà, le chiamate, le risposte e gli schemi API sono più complessi.)

Ora, supponiamo che il sito web di Arianna invii una chiamata API per "Autostrada ASDFGHJ". Questa non è una richiesta valida perché non è conforme allo schema dell'API, che consente solo nomi di autostrade validi. Il server non sarà in grado di fornire una risposta utilizzabile a una richiesta di questo tipo.

Cos'è un endpoint API?

Un endpoint è "l'estremità" di un certo canale di comunicazione. Un endpoint API è il punto in cui ha origine una risposta API.

Nell'esempio, il client della connessione API è il sito web di Anna, mentre l'endpoint è il server che ospita l'API. Per ottenere una risposta, le chiamate API di Anna devono essere indirizzate verso un determinato URL (un URL è un indirizzo web, come ad esempio www.cloudflare.com/learning) sotto la responsabilità dell'API.

Che cos'è una integrazione API?

Per integrazione API si intende l'unione di due o più applicazioni che utilizzano delle API. L'integrazione consente a un'applicazione di sfruttare le funzionalità di un'altra, proprio come la collocazione di un team di vendita e uno di marketing in un unico ufficio permette a questi due team di collaborare e beneficiare delle reciproche attività. Le integrazioni API sono utilizzate comunemente anche per sincronizzare i dati tra due applicazioni o database.

Che cos'è un'API web?

Qualsiasi cosa che abbia a che fare con un codice informatico può avere un'API, dai sistemi operativi fino alle library di software. Una API web è specificamente destinata all'uso da parte di applicazioni web a cui si accede tramite Internet.

Le API web sono estremamente importanti per l'Internet moderno. Quasi tutte le applicazioni fruibili da utenti si basano su API per funzionare (non solo il sito web di Anna!). Intere filosofie di sviluppo software si basano sull'uso di API. Una di queste è JAMstack (JavaScript, API, markup). Un altro esempio è l'architettura di microservizi, che utilizza le API per "chiamare" le diverse funzioni che compongono un'applicazione. Anche le applicazioni create senza questi approcci di solito sono comunque basate su API.

Cosa sono le API SOAP e le API REST?

Le API SOAP e le API REST descrivono diverse categorie di API.

SOAP (Simple Object Access Protocol) è un tipo di protocollo. Le API SOAP sono API che utilizzano esclusivamente il protocollo SOAP.

REST (REpresentational State Transfer) è uno stile architetturale per i servizi web. Una API REST è un'API creata utilizzando l'architettura REST. A differenza delle API SOAP, le API REST funzionano con qualsiasi protocollo. La maggior parte delle API oggi sono API REST.

Le API presentano rischi per la sicurezza?

Consentire a una persona di usare un'applicazione introduce il rischio che questa persona, dell'applicazione, faccia un uso improprio. Parimenti, un'API introduce il rischio che un client API usi il servizio in modo improprio. Inoltre, le chiamate API web viaggiano su Internet e possono essere intercettate, falsificate o modificate proprio come qualsiasi altro trasferimento dati che avviene su una rete.

La sicurezza delle API è l'insieme di pratiche volte a proteggere le API da attacchi e abusi. Data l'importanza delle API per l'Internet moderno, la loro sicurezza è un componente fondamentale della sicurezza delle applicazioni web. Tra le misure di sicurezza più importanti concernenti le API troviamo:

  • Limitazione della frequenza: i client che effettuano troppe richieste API possono rallentare o mandare in crash l'API per altri client. La limitazione della frequenza impone un limite al numero di richieste API provenienti da un determinato endpoint API entro un certo intervallo di tempo.
  • Protezione da attacchi DDoS: analogamente alla limitazione della frequenza, la protezione DDoS (Distributed Denial-of-Service) blocca gli attacchi DDoS, che mirano a esaurire o sovraccaricare un'API con un elevato numero di richieste inviate simultaneamente.
  • Autenticazione: è importante autenticare gli endpoint API e i client per assicurarsi che le richieste API provengano da fonti legittime e non da potenziali aggressori. Mutual TLS (mTLS) è una delle forme più efficaci di autenticazione delle API.
  • Convalida dello schema: se una richiesta API non è conforme allo schema dell'API, l'API potrebbe reagire in modi inaspettati, ad esempio rivelando dati riservati. La convalida dello schema permette a un'API di scartare tali richieste.

Cloudflare API Shield include queste e altre funzionalità di sicurezza per proteggere dalle minacce API. Per approfondire la sicurezza delle API, consulta Che cos'è la sicurezza delle API?

DOMANDE FREQUENTI

Cos'è un'API (Application Programming Interface)?

Un'API è un insieme di regole che consente a un programma software di comunicare con un altro. Le API consentono agli sviluppatori di utilizzare funzioni già esistenti nelle loro applicazioni, invece di crearle da zero.

Che cos'è una chiamata (o richiesta)API?

Per "chiamata API" si intende un messaggio inviato a un'API che ha il compito di attivarla a eseguire una data funzione. Per ricevere una risposta valida, il messaggio deve essere formattato secondo lo schema dell'API e indirizzato all'endpoint corretto.

Cos'è un endpoint API?

Un endpoint API è l'URL o la posizione specifica a cui sono dirette le chiamate API. È qui che le applicazioni inviano le proprie richieste per ottenere dati o servizi dall'API.

Cosa sono le API web?

Le API web sono API progettate per essere utilizzate su Internet dalle applicazioni web, e sono essenziali per la maggior parte dei servizi digitali moderni e delle app web-based.

Cos'è la sicurezza delle API?

La sicurezza delle API è l'insieme di pratiche volte a proteggere le API da attacchi e usi impropri. Le misure principali includono la limitazione della frequenza, l'autenticazione (in particolare mutual TLS), la convalida dello schema e la protezione dagli attacchi DDoS.

Qual è la differenza tra le API REST e SOAP?

Le API REST seguono uno stile architetturale flessibile e possono utilizzare qualsiasi protocollo. Le APIs SOAP utilizzano un protocollo specifico denominato Simple Object Access Protocol. La maggior parte delle API oggi sono API REST.

Che cos'è uno schema API?

Uno schema API definisce le regole di formattazione delle richieste API e le tipologie di risposte che un'API fornirà. Lo schema assicura che le richieste e le risposte seguano una struttura standard. La convalida dello schema può anche aiutare a prevenire gli attacchi. Le richieste che non seguono lo schema possono essere scartate; questo garantisce che l'API non si comporterà in modo inatteso, ad esempio rivelando dati riservati.

Che cos'è una integrazione API?

Per integrazione API si intende il processo di connessione di due o più applicazioni tramite API, in modo da consentire la condivisione di dati e funzionalità.