API Gateway — serwis pośredniczący między klientami a wewnętrznymi mikroserwisami. Agreguje wywołania, zarządza routowaniem, autoryzacją, stosuje polityki bezpieczeństwa i limitowania, a także transformuje i proxyzuje żądania.
API Gateway jest potrzebny, aby ukryć wewnętrzną strukturę serwisów przed światem zewnętrznym i ujednolicić interakcję. Pomaga to zmniejszyć powiązania, przyspieszyć rozwój frontendów oraz zapewnić scentralizowaną kontrolę nad dostępem i logowaniem.
Przykład konfiguracji nginx jako najprostszy API Gateway:
server { listen 80; location /user/ { proxy_pass http://localhost:8081/; } location /order/ { proxy_pass http://localhost:8082/; } }
Kluczowe cechy:
Czy jeden serwis może komunikować się z innym omijając API Gateway?
Wewnętrzne serwisy mogą korzystać z bezpośrednich wywołań w prywatnych scenariuszach, ale dla klientów zewnętrznych API Gateway jest głównym sposobem dostępu.
Czy API Gateway jest Single Point of Failure?
Tak, jeśli nie skonfigurowano klastrowania i balansowania. Ważne jest uruchomienie kilku instancji i użycie balancera.
Czy API Gateway może cache'ować odpowiedzi?
Tak, zaawansowane gatewaye potrafią cache'ować żądania GET, co zmniejsza obciążenie serwisów i przyspiesza zwracanie danych. Przykład konfiguracji cache w Kong:
plugins: - name: proxy-cache config: strategy: memory content_type: [application/json] cache_ttl: 300