Cos'è un endpoint API?

Un endpoint API è la fine di una connessione API, in cui viene ricevuta una chiamata API.

Obiettivi di apprendimento

Dopo aver letto questo articolo sarai in grado di:

  • Definizione di endpoint API
  • Perché gli endpoint API utilizzano gli URL
  • Cogli l'importanza dell'autenticazione per gli endpoint API

Copia link dell'articolo

Cos'è un endpoint API?

Una interfaccia di programmazione applicazioni (API) è un modo per un'applicazione di richiedere un servizio da un'altra applicazione. Le API consentono agli sviluppatori di evitare di ricostruire le funzionalità dell'applicazione già esistenti. Un endpoint API è il luogo in cui tali richieste (note come chiamate API) vengono soddisfatte.

Se Alice e Bob si parlano al telefono, le parole di Alice viaggiano verso Bob e viceversa. Alice dirige le sue parole all'endpoint della conversazione: Bob.

Alice: "Ciao Bob" ----------> Bob

Allo stesso modo, un'integrazione API è come una conversazione. Ma invece di dire "Ciao", un client API dice al server API qualcosa come "Ho bisogno di alcuni dati" effettuando una chiamata API. L'endpoint del server API dice quindi "Ecco i dati", una risposta API. E gli endpoint API non sono entità fisiche come Alice e Bob; esistono nel software, non nell'hardware.

Server API e client API

Le API sono ospitate su uno o più server, computer specializzati che archiviano dati ed eseguono programmi software. Ciascun server "serve" dati, contenuti e funzionalità software ad altri dispositivi su Internet. L'endpoint API è quasi sempre ospitato su un server.

L'altra estremità della connessione API è il client API, l'entità che richiede servizi dall'API. Alcuni lo chiamano "utente" API, anche se la maggior parte delle chiamate API sono automatizzate.

In che modo un client API conosce l'endpoint del server?

Per poter essere utilizzata, un'API deve disporre di documentazione. La documentazione indica, tra le altre cose, quali tipi di richieste accetterà l'API, cosa può fare l'API, come formatta le sue risposte e quali sono i suoi endpoint. Gli sviluppatori possono esaminare la documentazione di un'API e incorporare queste informazioni durante la creazione delle loro applicazioni.

Ad esempio, consulta la documentazione dell'API di Cloudflare che include quali sono gli endpoint all'indirizzo: https://api.cloudflare.com/

In che modo le API utilizzano gli URL?

Gli URL (Uniform Resource Locator) vengono utilizzati per molteplici scopi sul Web, inclusa l'individuazione di pagine Web. Ad esempio, l'URL per la versione in inglese americano di questa pagina Web è https://www.cloudflare.com/learning/security/api/what-is-api-endpoint/. Quando un utente inserisce quell'URL nel proprio browser, il browser sa dove trovare questa pagina Web e può caricarla.

Gli URL indicano anche gli endpoint API. Quando Alice e Bob parlano al telefono, Alice chiama Bob al numero di telefono di Bob. Allo stesso modo, un URL dell'endpoint API è come un numero di telefono per effettuare chiamate API.

Un server API può ospitare uno o più endpoint API, il che significa che accetterà ed elaborerà le chiamate dirette agli URL di tali endpoint. I client API devono anche avere un URL in modo che il server API sappia dove inviare le sue risposte, proprio come Bob e Alice hanno entrambi bisogno di un numero di telefono per far funzionare le telefonate tra di loro. Gli sviluppatori impostano questo URL durante la creazione delle loro applicazioni.

Un URL include sempre il protocollo di livello applicazione, come HTTP, utilizzato per raggiungerlo. La maggior parte delle API Web utilizza HTTP, quindi è incluso nell'URL dell'endpoint API.

Come si autenticano gli endpoint e i client API?

Un'API progettata correttamente non accetta chiamate API da chiunque. Ciò lascerebbe il server API aperto alla ricezione di dati dannosi dagli autori di attacchi. Inoltre, l'utilizzo dell'API spesso costa denaro, quindi in questi casi il server API deve verificare se la chiamata API proviene da un cliente pagante.

Per questi motivi, il server API deve assicurarsi che il client API da cui proviene la chiamata sia noto e attendibile. Ciò è possibile tramite un processo detto autenticazione.

L'autenticazione consente di verificare l'identità. Proprio come ci sono diversi modi in cui un utente umano può autenticarsi su un sistema, ci sono quattro modi principali in cui gli endpoint API possono imporre l'autenticazione:

  1. Chiave API: al client client API viene assegnata una chiave o una stringa univoca di caratteri che solo loro e il servizio API conoscono. Quando il client API invia una chiamata API all'endpoint del server, include la chiave in modo che il server sappia da dove proviene la chiamata.
  2. Autenticazione di base (nome utente e password): simile all'approccio della chiave, il client API imposta un nome utente e una password con il servizio API e include queste credenziali nelle chiamate API.
  3. Token OAuth: Invece di richiedere l'autenticazione dal client, un server API può ottenere un token di autenticazione da un server di autenticazione affidabile tramite il protocollo OAuth.
  4. TLS reciproco: TLS è il protocollo che crea una connessione autenticata tra il client e il server durante il caricamento delle pagine Web. Può anche autenticare entrambi i lati di un'integrazione API.

Il TLS reciproco è il metodo di autenticazione più efficace nella maggior parte dei casi. Per prima cosa, autentica sia l'endpoint che il client, non solo il client, quindi entrambe le parti possono essere sicure di ricevere dati da una fonte legittima. Utilizza anche chiavi private, che non sono mai condivise tra gli endpoint e quindi non possono essere intercettate in transito. D'altra parte, chiavi API, password e token possono essere tutti duplicati o rubati.

Cloudflare API Shield utilizza il TLS reciproco per autenticare endpoint e client API, aiutando a proteggere entrambe le parti da un attacco. API Shield fornisce anche altre funzioni di sicurezza API, tra cui la limitazione della frequenza e la prevenzione contro la perdita dei dati (DLP)Scopri di più su API Shield.