Un'interfaccia di programmazione delle applicazioni (API) costituisce un modo in cui un software utilizza le funzioni di un altro software.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Cos'è la sicurezza delle API?
Cos'è la sicurezza delle applicazioni Web?
Cos'è la Top 10 OWASP?
Cos'è l'SQL injection?
Cos'è una chiamata API?
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
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.
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.
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.
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.
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.
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.
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:
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?
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.
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.
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.
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.
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.
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.
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.
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à.