Mobilní aplikace potřebuje data z pěti mikroslužeb. Pět HTTP volání, pět různých URL, pět autentizačních handshakes. API Gateway agreguje, routuje a zabezpečuje — klient komunikuje s jedním endpointem.
Co řeší API Gateway¶
- Request routing: /api/users → user-service, /api/orders → order-service
- Authentication: JWT validace na jednom místě
- Rate limiting: Ochrana před DDoS a abuse
- Response aggregation: Kombinace dat z více služeb do jedné odpovědi
- Protocol translation: REST pro klienty, gRPC interně
- Caching: Cache na edge pro snížení zátěže služeb
Implementace¶
Netflix Zuul: Java, Spring Cloud integrace, battle-tested. Kong: Nginx-based, plugin architektura, Lua extensions. Nginx/OpenResty: Výkonný, konfigurovatelný, ale víc práce.
Backend for Frontend (BFF)¶
Jeden gateway pro všechny klienty? Ne vždy ideální. Mobilní klient potřebuje jiná data než webová aplikace. BFF pattern: dedikovaný gateway pro každý typ klienta — mobile BFF, web BFF, partner BFF.
Rizika¶
API Gateway je single point of failure. Musí být vysoce dostupný, rychlý a odolný. Nesmí se stát bottleneckem. Keep it thin — routing a cross-cutting concerns ano, business logika ne.
Gateway je nezbytný pro produkční mikroslužby¶
Bez API Gateway vystavujete interní architekturu klientům. S gateway máte kontrolu, bezpečnost a flexibilitu. Povinný pattern pro mikroslužby.