Cos'è un API Gateway?

Un API Gateway è ciò che gestisce il flusso che si interfaccia con il servizio di backend o i dati effettivi, e applica le politiche, l'autenticazione e il controllo generale dell'accesso per le chiamate API per proteggere i dati preziosi. Un API Gateway è il modo in cui si controlla l'accesso ai sistemi e servizi back-end ed è stato progettato per ottimizzare la comunicazione tra i clienti esterni e i tuoi servizi back-end, dando ai clienti un'esperienza fluida. Un API Gateway assicura la scalabilità e l'alta disponibilità dei servizi. È responsabile dell'instradamento della richiesta al servizio appropriato e dell'invio di una risposta al richiedente. Un API Gateway mantiene una connessione sicura tra i dati e le API, e gestisce il traffico e le richieste API, compreso il bilanciamento del carico, sia all'interno che all'esterno della vostra azienda. Il gateway applica le politiche, l'autenticazione e il controllo generale dell'accesso alle chiamate API per proteggere i dati preziosi. Un API Gateway prende tutte le chiamate API dai clienti e le instrada al giusto microservice usando il routing della richiesta, la composizione e la traduzione del protocollo.

Diagramma dell'API Gateway

Una delle ragioni principali per cui viene usato un API Gateway è che è in grado di richiamare più servizi back-end e aggregare i risultati. Piuttosto che inviare una richiesta per ogni singolo servizio, i clienti possono inviarla all'API Gateway, che poi passa la richiesta al servizio pertinente. Inoltre, un API Gateway fornisce un'alternativa allo stile API non personalizzato. Un API Gateway può anche esporre un'API diversa per ogni cliente, una necessità negli ambienti in continua evoluzione di oggi.

E-book sull'API Gateway
La Guida al successo per l'API Product Manager
Sfrutta il potere delle API con la guida di successo in 7 parti su come le aziende possono creare programmi API per far crescere il business digitale!

Perché usare un API Gateway?

La maggior parte delle API aziendali sono oggi distribuite usando i gateway. Gli API Gateway vengono utilizzati maggiormente a causa dell'aumento dell'uso dei microservice. I Microservice permettono di decostruire un'applicazione in diversi servizi liberamente accoppiati, perché ogni microservizio richiede la propria funzionalità. I microservice rendono più facile sviluppare, distribuire e mantenere le diverse funzioni di un'applicazione, ma possono anche semplificare l'accesso dei clienti all'applicazione rendendolo più rapido e sicuro. Un API Gateway è la soluzione a questo problema. Piuttosto che far richiedere ai clienti l'accesso ad ogni microservizio individualmente, il gateway è quel singolo punto di ingresso per le richieste, che le distribuisce al servizio di riferimento, raccoglie i risultati e li ritrasmette al richiedente. La ragione principale per utilizzare un API Gateway, questa funzione è definita dagli sviluppatori come routing. Per esempio, gli API Gateway aiutano la propria azienda a gestire il traffico generato dalle chiamate da un'applicazione mobile come Uber e un'applicazione backend come Google Maps.

Gli API Gateway sono fondamentali per un'API Management di successo. Come proxy principale che collega i clienti con i servizi, il gateway supporta importanti funzioni di amministrazione e sicurezza, tra cui l'autenticazione, la raccolta di parametri di riferimento, la convalida degli input e la trasformazione delle risposte.

Autenticazione

Un API Gateway può essere usato per autenticare le chiamate API. In questo modo, anche se il cliente ha bisogno di accedere ai dati da più servizi, deve autenticarsi solo una volta al gateway. Questo riduce la latenza e garantisce che i processi di autenticazione siano coerenti in tutta l'applicazione. In maniera simile alla modalità in cui un passaporto viene utilizzato per verificare l'identità o a un visto per dimostrare che si è autorizzati a lavorare in un determinato Paese, l'API Gateway fornisce più modi per i consumatori di autenticarsi e ottenere l'accesso alle risorse API. I gateway possono utilizzare uno dei molti standard aperti per stabilire l'identità o la validità del consumatore (ad esempio, OAuth, token JWT, API Key, HTTP Basic/Digest, SAML, ecc.) o può utilizzare mezzi non standard per individuare le credenziali nelle intestazioni o nel carico utile del messaggio. Gli API Gateway possono anche richiamare altri sistemi per verificare l'identità, proprio come la polizia potrebbe accedere a un archivio penale. Inoltre, come la dogana in un aeroporto, un API Gateway può anche controllare le minacce in un consumatore API in entrata. Possono usare Firewalling API, validazione del contenuto e controlli di integrità del messaggio che includono la determinazione se un'API è stata manomessa. Un API Gateway può anche delegare la valutazione del rischio di un'API in entrata a un'applicazione di terze parti.

Raccolta di parametri di riferimento

Poiché tutte le richieste passano attraverso l'API Gateway, è il luogo ideale per raccogliere Data Analytics. Per esempio, un API Gateway può misurare quante richieste sta facendo un utente o quante richieste vengono inoltrate a ogni singolo microservizio. Gli API Gateway possono anche essere utilizzati per limitare le richieste. Se un utente sta inviando troppe richieste, il gateway può essere programmato per rifiutarle piuttosto che passarle a uno dei microservice.

Validazione degli input

La validazione degli input è il gateway API che assicura che tutte le richieste dei clienti contengano le informazioni necessarie per completare una richiesta, e che siano fornite nel formato corretto. Se qualcosa sembra essere sbagliato, il gateway rifiuterà la richiesta. Se tutte le informazioni necessarie sono incluse, il gateway indirizza la richiesta al microservizio responsabile del recupero delle informazioni richieste.

Trasformazione della risposta

La trasformazione della risposta è una funzione importante degli API Gateway. Agisce come "traduttore" di informazioni. Per esempio, se il servizio di backend ha dato una risposta in XML, ma il richiedente ne ha bisogno in JSON, il gateway se ne occupa automaticamente. Applicazioni e utenti diversi spesso hanno bisogno di accedere a informazioni diverse. Le applicazioni mobili di solito hanno bisogno di meno dati rispetto alle loro controparti web, per esempio in modo che il gateway possa fornire le risposte corrette alle richieste. Le richieste degli utenti interni probabilmente includono più dati nelle risposte. Alcuni di quei dati dovrebbero essere protetti in modo sicuro prima di rispondere a una richiesta simile da un utente esterno, che è il lavoro del gateway.

Vantaggi degli API Gateway

Riunire i microservizi e renderli accessibili tramite API Gateway fornisce un accesso sicuro, più veloce e più facile ai servizi. L'utilizzo di un API Gateway garantisce alle imprese digitali una miriade di vantaggi aggiuntivi, ad esempio:

  • Rende le API e i vostri sistemi di backend più sicuri attraverso un approccio a interfaccia singola
  • Fornisce il pieno controllo dell'ambiente di esecuzione delle API usando politiche estensibili per la sicurezza e il controllo degli accessi, il throttling, il routing, la mediazione e la gestione degli SLA.
  • Scrittura di codice più semplice, sia per i servizi che per gli utenti dell'applicazione
  • Riduzione della latenza nel tempo grazie al minor numero di chiamate bidirezionali
  • Accesso più rapido e facile a tutti i microservice
  • Diminuzione del carico di lavoro su ogni singolo microservice o bilanciamento del carico
  • Raccolta completa di parametri di riferimento

Altri vantaggi di un API Gateway sono i seguenti: nasconde il modo in cui un'applicazione è partizionata dal richiedente o dal cliente, i clienti non devono più conoscere le posizioni di tutti i servizi individuali, e fornisce l'API ottimale per ogni richiesta, indipendentemente dal codice utilizzato.

Il successo delle applicazioni può dipendere da un potente API Gateway. Un gateway assicura grandi prestazioni, alta disponibilità e scalabilità dei servizi.