Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Gateway & Routing · Modul 13 dari 24

Belajar Microservices - API Gateway Pattern

Peran API Gateway (Kong, Spring Cloud Gateway, Traefik) sebagai single entry point: Reverse Proxy, Request Routing, Rate Limiting, SSL Termination.

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/orders ke Order Service, /api/v1/users ke 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/**