1. Mengapa Membutuhkan API Gateway?
Tanpa API Gateway, aplikasi klien (Web/Mobile) harus memanggil puluhan endpoint IP microservices internal secara langsung. Ini berbahaya karena merusak enkapsulasi keamanan internal dan memaksa client menangani perubahan IP/port service.
API Gateway bertindak sebagai Reverse Proxy pintar yang menyembunyikan arsitektur internal microservices dari dunia luar.
2. Tanggung Jawab Utama API Gateway
- Request Routing & Aggregation: Mengarahkan URL request (misal
/api/v1/orderske Order Service,/api/v1/userske User Service). - SSL / TLS Termination: Menangani enkripsi HTTPS di gateway, sehingga komunikasi internal antar service bisa menggunakan HTTP cepat.
- Authentication & Authorization: Memvalidasi token JWT / OAuth2 sebelum meneruskan request ke service internal.
- Rate Limiting & Throttling: Membatasi jumlah request per menit untuk mencegah Serangan DDoS atau overload API.
- Circuit Breaker & Retry: Menangani penanganan fallback jika service internal down.
3. Contoh Konfigurasi Routes di Spring Cloud Gateway (YAML)
application.yml (Spring Cloud Gateway)
spring:
cloud:
gateway:
routes:
- id: order-service-route
uri: lb://ORDER-SERVICE
predicates:
- Path=/api/v1/orders/**
filters:
- StripPrefix=1
- name: RequestRateLimiter
args:
redis-rate-limiter.replenishRate: 10
redis-rate-limiter.burstCapacity: 20
- id: catalog-service-route
uri: lb://CATALOG-SERVICE
predicates:
- Path=/api/v1/products/**