Client Route Özellikleri
Apinizer’ın Client Route özelliği, API Gateway’de gelen isteklerin daha esnek ve dinamik bir şekilde yönlendirilmesini sağlar:Çoklu Path
Host Bazlı Yönlendirme
Header Bazlı Yönlendirme
Method Bazlı Yönlendirme
Client Route Nasıl Çalışır?
Client Route özelliği, gelen istekleri belirli bir öncelik sırasına göre değerlendirerek doğru API Proxy’ye yönlendirir.İş Akışı
Aşağıdaki diyagram, istek ve yanıt akışının Gateway üzerinden nasıl gerçekleştiğini gösterir:Yönlendirme Öncelik Sırası
Gateway, gelen istekleri aşağıdaki öncelik sırasına göre değerlendirir:1. Relative Path
2. Hosts
3. Headers
4. Methods
Eşleştirme Mantığı
Hosts (OR Mantığı)
Hosts (OR Mantığı)
hostname_x.com veya hostname_y.com ise koşul sağlanır.Headers (AND Mantığı)
Headers (AND Mantığı)
testmode: true hem de test: true header’ları mevcut olmalıdır.Path Eşleştirme
Path Eşleştirme
- Relative path eşleştirmesi en yüksek önceliğe sahiptir
- Daha spesifik (uzun) path’ler, daha genel (kısa) path’lerden önce değerlendirilir
- Tam eşleşme bulunamazsa, en yakın parent path kullanılır
Method Eşleştirme
Method Eşleştirme
- Method kontrolü en düşük önceliğe sahiptir
- Belirtilmezse tüm HTTP methodları kabul edilir
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 Örnekleri
Sol Taraf Wildcard
- a.example.com
- x.y.example.com
- api.example.com
- test.subdomain.example.com
Sağ Taraf Wildcard
- example.com
- example.org
- example.net
- example.io
Örnek Senaryo
Aşağıdaki tabloda 5 farklı API Proxy ve bunlara tanımlanmış Client Route yapılandırmaları gösterilmektedir:| Proxy ID | Relative Path | Methods | Hosts (OR) | Headers (AND) |
|---|---|---|---|---|
| 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
Örnek 1: Temel Yönlendirme
Örnek 2: Host Bazlı Yönlendirme
Örnek 2: Host Bazlı Yönlendirme
Örnek 3: Eksik Header ile Yönlendirme
Örnek 3: Eksik Header ile Yönlendirme
Örnek 4: Tam Header Eşleşmesi
Örnek 4: Tam Header Eşleşmesi
Örnek 5: Path Önceliği - Temel Path
Örnek 5: Path Önceliği - Temel Path
Örnek 6: Path Önceliği - Uzun Path
Örnek 6: Path Önceliği - Uzun Path
Örnek 7: Path ile Alt Yol
Örnek 7: Path ile Alt Yol
Örnek 8: Path Eşleşmesi - Farklı Alt Yol
Örnek 8: Path Eşleşmesi - Farklı Alt Yol
Örnek 9: Host ve Header Kombinasyonu
Örnek 9: Host ve Header Kombinasyonu
Örnek 10: Farklı Path ile Host ve Header
Örnek 10: Farklı Path ile Host ve Header
Önemli Notlar
Path Eşleştirme
Path Eşleştirme
- Relative path eşleştirmesi en yüksek önceliğe sahiptir
- Daha spesifik (uzun) path’ler, daha genel (kısa) path’lerden önce değerlendirilir
- Tam eşleşme bulunamazsa, en yakın parent path kullanılır
Host Eşleştirme
Host Eşleştirme
- Birden fazla host tanımlanabilir
- Hostlar OR mantığı ile çalışır
- İstekteki host değeri, tanımlanan hostlardan herhangi biriyle eşleşirse koşul sağlanır
Header Eşleştirme
Header Eşleştirme
- Birden fazla header tanımlanabilir
- Header’lar AND mantığı ile çalışır
- İstekte tanımlanan tüm header’lar mevcut olmalıdır
- Eksik veya hatalı header durumunda bir sonraki uygun proxy’ye geçilir
Method Eşleştirme
Method Eşleştirme
- Method kontrolü en düşük önceliğe sahiptir
- Belirtilmezse tüm HTTP methodları kabul edilir
Routing Kombinasyon Tablosu
Bu tablo API Proxy açısından, API Proxy’nin nasıl seçildiğini göstermektedir:| Durum | Açıklama |
|---|---|
| Yok | API proxy tanımında bulunmamaktadır. Client’ın gönderdiği kontrol edilmez. |
| Eşleşti | API proxy tanımında bulunmaktadır. Client’ın gönderdiği kontrol edilir, beklenen değeri gönderdi. |
| Eşleşmedi | API proxy tanımında bulunmaktadır. Client’ın gönderdiği kontrol edilir, beklenen değeri göndermedi. |

