API Proxy Client Route Kullanım Kılavuzu

Genel Bakış
Apinizer'ın Client Route özelliği, API Gateway'de gelen isteklerin daha esnek ve dinamik bir şekilde yönlendirilmesini sağlar. Bu özellik sayesinde:
- Bir proxy'e birden fazla relative path tanımlanabilir
- Host bilgisine göre farklı proxy'lere yönlendirme yapılabilir
- HTTP header değerlerine göre yönlendirme kuralları oluşturulabilir
- Method bazlı yönlendirme yapılabilir
Bu özellik geliştirilmeden önce, her proxy için yalnızca tek bir benzersiz (unique) relative path tanımlanabiliyordu. Yeni özellik ile aynı relative path'e sahip birden fazla proxy oluşturulabilir ve bunlar arasında host, header veya method bilgilerine göre dinamik yönlendirme yapılabilir.
Client Route Nasıl Çalışır?
Client Route özelliği, gelen istekleri belirli bir öncelik sırasına göre değerlendirerek doğru proxy'e yönlendirir.
Yönlendirme Öncelik Sırası
Gateway, gelen istekleri aşağıdaki öncelik sırasına göre değerlendirir:
- Relative Path (En yüksek öncelik)
- Hosts
- Headers
- Methods (En düşük öncelik)
Eşleştirme Mantığı
- Hosts: Birden fazla host tanımlandığında OR mantığı ile çalışır. Yani tanımlanan hostlardan herhangi birinin eşleşmesi yeterlidir.
- Headers: Birden fazla header tanımlandığında AND mantığı ile çalışır. Yani tanımlanan tüm header'ların eşleşmesi gerekir.
Wildcard Hostname Kullanımı
Apinizer, host tanımlamalarında esneklik sağlamak için wildcard (joker karakter) kullanımını destekler. Wildcard hostname'ler, belirli bir pattern'e uyan tüm Host header değerlerinin koşulu sağlamasına ve böylece ilgili Route ile eşleşmesine olanak tanır.
Wildcard Kuralları
Wildcard hostname'ler aşağıdaki kurallara uygun olmalıdır:
- Domain'in en solundaki veya en sağındaki label'ında yalnızca bir adet asterisk (*) içerebilir
- Asterisk, domain'in başında veya sonunda kullanılabilir
Wildcard Örnekleri
Sol Taraf Wildcard
*.example.com
Bu tanımlama aşağıdaki Host değerlerinin eşleşmesini sağlar:
- a.example.com
- x.y.example.com
- api.example.com
- test.subdomain.example.com
Sağ Taraf Wildcard
example.*
Bu tanımlama aşağıdaki Host değerlerinin eşleşmesini sağlar:
- example.com
- example.org
- example.net
- example.io
Örnek Senaryo
Aşağıdaki tabloda 5 farklı proxy ve bunlara tanımlanmış Client Route yapılandırmaları gösterilmektedir.
| Proxy ID | Relative Path | Methods | Hosts (VEYA) | Headers (VE) |
|---|---|---|---|---|
| 1 | /jokes | - | - | testmode:true, test:true |
| 2 | /jokes | - | hostname_x.com, hostname_y.com | - |
| 3 | /jokes1/endpoint_x | - | - | - |
| 4 | /jokes1 | - | - | - |
| 5 | /jokes | - | - | - |
Yönlendirme Örnekleri
Bu yapılandırmaya göre gelen istekler şu şekilde yönlendirilir:
Örnek 1: Temel Yönlendirme
İstek:
GET https://<ACCESS_URL>/jokes
Sonuç: Proxy 5'e yönlendirilir (herhangi bir koşul sağlanmadığı için varsayılan proxy)
Örnek 2: Host Bazlı Yönlendirme
İstek:
GET https://<ACCESS_URL>/jokes
Host: hostname_x.com
Sonuç: Proxy 2'ye yönlendirilir (host koşulu sağlandı)