API Gateway è un servizio intermediario tra i client e i microservizi interni. Aggrega le chiamate, gestisce il routing, l'autenticazione, applica politiche di sicurezza e limitazione, e trasforma e proxy le richieste.
L'API Gateway è necessario per nascondere la struttura interna dei servizi dal mondo esterno e unificare le interazioni. Questo aiuta a ridurre la dipendenza, accelerare lo sviluppo dei frontend e garantire un controllo centralizzato sull'accesso e il logging.
Esempio di configurazione di nginx come semplice API Gateway:
server { listen 80; location /user/ { proxy_pass http://localhost:8081/; } location /order/ { proxy_pass http://localhost:8082/; } }
Caratteristiche chiave:
Un servizio può chiamare un altro bypassando l'API Gateway?
I servizi interni possono utilizzare chiamate dirette per scenari privati, ma per i client esterni l'API Gateway è il principale modo di accesso.
L'API Gateway è un Single Point of Failure?
Sì, se non si configura il clustering e il bilanciamento. È importante eseguire più istanze e utilizzare un bilanciatore.
L'API Gateway può memorizzare le risposte nella cache?
Sì, i gateway avanzati possono memorizzare nella cache le richieste GET, riducendo il carico sui servizi e accelerando la restituzione dei dati. Esempio di configurazione della cache in Kong:
plugins: - name: proxy-cache config: strategy: memory content_type: [application/json] cache_ttl: 300