Salah satu contoh API gateway yang dapat dipakai adalah Tyk gateway. Ini merupakan software open source yang dapat digunakan secara gratis, free, walaupun dengan beberapa limitasi. Sistem gateway dengan menggunakan Tyk Gateway dapat berjalan dengan baik dengan cukup memerlukan Redis untuk menyimpan hal-hal seperti perhitungan rate limit counter untuk request.

Untitled

<aside> 💡 Tyk API Gateway dan Redis merupakan open source software yang memiliki jenis lisensi yang mudah digunakan secara gratis. Sistem di atas merupakan versi minimal agar Tyk API Gateway dapat berjalan.

</aside>

Cara Install Redis dan Tyk API Gateway OSS

Dalam hal ini, instalasi akan dilakukan dengan menggunakan Docker untuk mempermudah prosesnya.

1. Buat Docker network untuk Tyk Gateway dan Redis

$ docker network create tyk

2. Jalankan Container Redis

Perintah berikut akan melakukan pull image terlebih dahulu jika di local belum ada. Sehingga tidak perlu docker pull image Redis terlebih dahulu.

$ docker run -itd --rm --name redis --network tyk -p 127.0.0.1:6379:6379 redis:4.0-alpine

3. Download konfigurasi Tyk API Gateway

$ wget <https://raw.githubusercontent.com/TykTechnologies/tyk-gateway-docker/master/tyk.standalone.conf>

4. Jalankan Container Tyk API Gateway

$ docker run \\
  --name tyk_gateway \\
  --network tyk \\
  -p 8080:8080 \\
  -v $(pwd)/tyk.standalone.conf:/opt/tyk-gateway/tyk.conf \\
  -v $(pwd)/apps:/opt/tyk-gateway/apps \\
  docker.tyk.io/tyk-gateway/tyk-gateway:latest

Dalam hal ini, akan ada mounting agar Docker container Tyk API Gateway dapat menggunakan config yang kita simpan di OS kita.

<aside> 🧐 Jika mendapatkan log error:

level=error msg="Redis health check failed" error="storage: Redis is either down or was not configured" liveness-check=true prefix=main

bisa diabaikan dulu agar bisa lanjut ke bagian selanjutnya, jika ingin mencoba di-debug silakan 🙏.

</aside>

Cara menambah API definition baru

Dalam instalasi minimal Tyk ini, API dapat didaftarkan ke gateway dengan mengirimkan konfigurasi API via API yang disediakan Tyk Gateway. Untuk selanjutnya konfigurasi API ini disebut dengan API definition. Ini adalah terminologi yang digunakan oleh Tyk. Berikut ini contoh potongan API definition (dalam ekstensi .json) yang dapat didaftarkan di gateway.

{
    "name": "Hello-World",
		...
    "proxy": {
      "listen_path": "/hello-world/",
      "target_url": "<http://echo.tyk-demo.com:8080/>",
      "strip_listen_path": true
    },
    "active": true
}