Che cos’è e caratteristiche di un API Gateway in informatica

Che cos’è e caratteristiche di un API Gateway in informatica

API Gateway

Un API Gateway è un componente spesso presente nelle architetture a microservizi. Si tratta di un servizio che offre ai client un unico punto di ingresso per il back end dell’applicazione, evitando la comunicazione diretta tra i client e i vari microservizi.

Quando le applicazioni sono complesse, una semplice operazione di un client può comportare il coinvolgimento di decine, se non centinaia, di servizi. Una mole elevata di richieste da parte del client è difficile da gestire, sia dal punto di vista della complessità di sviluppo che dell’efficienza in termini di utilizzo della rete. Se poi i microservizi usano protocolli di comunicazione e formati di messaggi poco adatti ad essere implementati in applicazioni web o mobili, si rende necessario un meccanismo di traduzione. Queste ragioni rendono l’utilizzo di un API gateway necessario.

Un API Gateway può svolgere essenzialmente tre compiti:

  • Inoltro: le richieste che passano per il gateway vengono inoltrate alle API dei rispettivi microservizi di back end.
  • Composizione: se una richiesta del client si traduce in più richieste verso diversi microservizi, il gateway compone le risposte ricevute da essi in un’unica risposta da fornire al client.
  • Traduzione tra protocolli: se per la comunicazione tra microservizi si usano protocolli non compatibili con il client, il gateway funge da traduttore.

Un vantaggio che si ricava dall’utilizzo è quello di nascondere la struttura interna dell’applicazione, quindi i servizi che la compongono. Si crea, perciò, un disaccoppiamento tra l’architettura interna dell’applicazione e quella che è esposta ai client. In questo modo si può alterare, se ritenuto opportuno, l’architettura dell’applicazione senza avere impatto sui client. Inoltre si riduce la complessità dei client, che si limitano a parlare con un solo servizio, e, grazie alla minore granularità dell’API esposta, si riduce il numero di richieste che i client effettuano.

Se ritenuto opportuno, si possono avere anche diversi gateway per diverse tipologie di client, oppure lo stesso gateway può esporre API diverse a client diversi. Un uso comune dei gateway è quello di offrire una API univoca per client e servizi di terze parti, invece di consentire l’accesso diretto ai servizi di back end. Infatti, sui client di terze parti non si ha alcun controllo e risulta necessario disaccoppiare l’API a cui hanno accesso da quella interna.

Il gateway può implementare i meccanismi di sicurezza, load balancing e caching.

Che cos'è e caratteristiche di un API Gateway in informatica

L’introduzione di un API Gateway nell’architettura dell’applicazione richiede ovviamente lo sviluppo e il mantenimento di un ulteriore componente. Ricevendo tutte le richieste, c’è il rischio che diventi un collo di bottiglia per l’applicazione, quindi deve essere progettato in modo da essere leggero e scalabile. A questo proposito, diventa quasi necessario l’impiego di tecniche di programmazione asincrona non bloccante.

Per facilitare la composizione di API, che comporta l’esecuzione di molteplici chiamate, sia in serie che in parallelo, è consigliabile usare la programmazione reattiva. I meccanismi tradizionali di programmazione asincrona, basati sull’uso delle callback, sono poco comodi da usare quando si devono combinare molteplici chiamate asincrone, causando quello che è conosciuto come Callback Hell.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *