Ana içeriğe atla
Client Route, API Proxy’lerinize gelen isteklerin nasıl yönlendirileceğini belirleyen yapılandırma ayarlarıdır. Client Route kavramı hakkında detaylı bilgi için Client Route sayfasına bakabilirsiniz.

Client Route Özellikleri

Genel Bakış: Image 2024 9 9 15 35 35 Pn Client Route özelliği ile aşağıdaki yönlendirme seçeneklerini kullanabilirsiniz:

Çoklu Path

Bir API Proxy’ye birden fazla relative path tanımlayabilirsiniz

Host Bazlı Yönlendirme

Host bilgisine göre farklı API Proxy’lere yönlendirme yapabilirsiniz

Header Bazlı Yönlendirme

HTTP header değerlerine göre yönlendirme kuralları oluşturabilirsiniz

Method Bazlı Yönlendirme

HTTP method bazlı yönlendirme yapabilirsiniz
Bu özellik geliştirilmeden önce, her API Proxy için yalnızca tek bir benzersiz (unique) relative path tanımlanabiliyordu. Yeni özellik ile aynı relative path’e sahip birden fazla API Proxy oluşturulabilir ve bunlar arasında host, header veya method bilgilerine göre dinamik yönlendirme yapılabilir.

Yönlendirme Öncelik Sırası

Gateway, gelen istekleri aşağıdaki öncelik sırasına göre değerlendirir:

1. Relative Path

En yüksek öncelik

2. Hosts

Host header kontrolü

3. Headers

Header kontrolü

4. Methods

En düşük öncelik

Eşleştirme Mantığı

Hosts (OR Mantığı)

Birden fazla host tanımlandığında OR mantığı ile çalışır. Yani tanımlanan hostlardan herhangi birinin eşleşmesi yeterlidir. Örnek:
İstekteki Host header değeri hostname_x.com veya hostname_y.com ise koşul sağlanır.

Headers (AND Mantığı)

Birden fazla header tanımlandığında AND mantığı ile çalışır. Yani tanımlanan tüm header’ların eşleşmesi gerekir. Örnek:
İstekte hem testmode: true hem de test: true header’ları mevcut olmalıdır.

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 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 Kuralları:
  • 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

Eşleşen Host’lar:
  • a.example.com
  • x.y.example.com
  • api.example.com
  • test.subdomain.example.com

Sağ Taraf Wildcard

Eşleşen Host’lar:
  • 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:

Yönlendirme Örnekleri

Bu yapılandırmaya göre gelen istekler şu şekilde yönlendirilir:
İstek:
Sonuç: Proxy 5’e yönlendirilir (herhangi bir koşul sağlanmadığı için varsayılan proxy)
Path eşleşti ancak host ve header koşulları sağlanmadığı için en basit yapılandırmaya sahip Proxy 5 seçilir.
İstek:
Sonuç: Proxy 2’ye yönlendirilir (host koşulu sağlandı)
Host önceliği header’dan yüksek olduğu için Proxy 2 seçilir.
İstek:
Sonuç: Proxy 5’e yönlendirilir (Proxy 1 için her iki header gerekli, sadece biri sağlandı)
Header’lar AND mantığı ile çalıştığı için tüm header’ların eşleşmesi gerekir. Eksik header durumunda bir sonraki uygun proxy seçilir.
İstek:
Sonuç: Proxy 1’e yönlendirilir (tüm header koşulları sağlandı)
Tüm header koşulları sağlandığı için Proxy 1 seçilir.
İstek:
Sonuç: Proxy 4’e yönlendirilir (path tam eşleşme)
Path önceliği en yüksek olduğu için tam eşleşen path’e sahip Proxy 4 seçilir.
İstek:
Sonuç: Proxy 3’e yönlendirilir (daha spesifik path öncelikli)
Daha spesifik (uzun) path’ler, daha genel (kısa) path’lerden önce değerlendirilir.
İstek:
Sonuç: Proxy 3’e yönlendirilir (en yakın parent path eşleşmesi)
Tam eşleşme bulunamazsa, en yakın parent path kullanılır.
İstek:
Sonuç: Proxy 4’e yönlendirilir (parent path olarak /jokes1 eşleşti)
/jokes1/endpoint_y path’i için tam eşleşme yok, bu yüzden parent path olan /jokes1 eşleşmesi kullanılır.
İstek:
Sonuç: Proxy 2’ye yönlendirilir (host, header’dan daha yüksek önceliğe sahip)
Host önceliği header’dan yüksek olduğu için, host koşulu sağlandığında header koşulları göz ardı edilir ve Proxy 2 seçilir.
İstek:
Sonuç: Proxy 4’e yönlendirilir (path önceliği en yüksek, host ve header’lar göz ardı edilir)
Path önceliği en yüksek olduğu için, path eşleşmesi sağlandığında host ve header koşulları göz ardı edilir.

Routing Kombinasyon Tablosu

Bu tablo API Proxy açısından, API Proxy’nin nasıl seçildiğini göstermektedir: Aşağıdaki tablo, farklı kombinasyonlarda API Proxy’nin nasıl seçildiğini gösterir:

Önemli Notlar

  • 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
  • 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
  • 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 kontrolü en düşük önceliğe sahiptir
  • Belirtilmezse tüm HTTP methodları kabul edilir
Client Route özelliği, API Gateway’inizde karmaşık yönlendirme senaryolarını kolayca yönetmenizi sağlar. Öncelik sırası ve eşleştirme mantığını doğru anlayarak, esnek ve güçlü API yönlendirme yapılandırmaları oluşturabilirsiniz.

İlgili Sayfalar

Client Route

Client Route kavramını öğrenin

API Proxy Oluşturma

API Proxy oluşturma

Routing ve Upstream

Routing ve Upstream kavramlarını öğrenin

HTTP Yönlendirme

HTTP Routing yapılandırması

API Proxy Konfigürasyonu

API Proxy ayarları