HTTP yeniden yazma ilkesi, isteği arka uç hizmetine iletmeden önce yolunu ve ana bilgisayar adını değiştirerek iş ve mimari gereksinimlerinize uygun yönlendirme üzerinde hassas kontrol sağlar.
HTTP yeniden yazma ilkesini yapılandırın
HTTP yeniden yazma, orijinal isteğin yolunu ve ana bilgisayar adını değiştirir.
-
Cloud-native API Gateway, bir örnek dışındaki API'ler ve bir örnek içindeki API'ler için HTTP yeniden yazma ilkesini yapılandırmak üzere iki yöntem sunar.
Örnek dışındaki API'ler
Cloud-native API Gateway konsoluna giriş yapın. Sol gezinme bölmesinde API öğesine tıklayın ve ardından üst menü çubuğundan bir bölge seçin.
Hedef API'ye tıklayın. Üstteki All instances açılır listesinden hedef örnek öğesini veya All Instances seçeneğini belirleyin.
Routes sekmesinde hedef rotayı seçin.
Örnek içindeki API'ler
Cloud-native API Gateway konsoluna giriş yapın. Sol gezinme bölmesinde Instance öğesine tıklayın ve ardından üst menü çubuğundan bir bölge seçin.
Instance sayfasında hedef ağ geçidi örneğinin kimliğine (ID) tıklayın. Sol gezinme bölmesinde API öğesine tıklayın ve ardından hedef API'yi seçin.
Routes sekmesinde hedef rotayı seçin.
Configure Policy sekmesine tıklayın. Ardından, Inbound Processing bölümünde Enable Policy/Plug-in seçeneğine tıklayın.
HTTP Rewrite kartına tıklayın. Add Policy: HTTP Rewrite panelinde parametreleri yapılandırın ve Add düğmesine tıklayın.
Yol yeniden yazma
Cloud-native API Gateway, ön ek yeniden yazma ve düzenli ifade (regex) yeniden yazma olmak üzere iki yol yeniden yazma yöntemini destekler.
Ön ek yeniden yazma
Ön ek yeniden yazma, bir isteğin yol ön ekini değiştirir.
Örnek 1
Bir istek yolunu arka uç hizmetine iletmeden önce /app/test değerinden /test değerine değiştirmek için aşağıdaki yapılandırmayı kullanın:
Rota eşleşme koşulu: Eşleşme türü Prefix Match olup yol
/app/olarak ayarlanır.Yeniden yazma: Yeniden yazma türü Prefix Rewrite olup yol
/olarak ayarlanır.
Rota eşleşme koşulu için yolun /app/ olması gerekir. Bunun nedeni, ön ek yeniden yazmanın yalnızca ön ek kuralı tarafından eşleştirilen dizenin yerine yeni değeri koymasıdır. Koşul için yol /app olarak ayarlanırsa, yeniden yazılan yol //test haline gelir ki bu istenen sonuç değildir.
Örnek 2
Bir istek yolunu /v1/test değerinden /v2/test değerine değiştirmek için aşağıdaki yapılandırmayı kullanın:
Rota eşleşme koşulu: Eşleşme türü Prefix Match olup yol
/v1olarak ayarlanır.Yeniden yazma: Yeniden yazma türü Prefix Rewrite olup yol
/v2olarak ayarlanır.
Ön ek yeniden yazma için rotanın eşleşme türünün Prefix Match olması gerekir. Bu yeniden yazma türü, Exact Match veya Regex Match kullanan rotalar için desteklenmez. Ön ek eşleşmesi aynı yol ön ekine sahip tüm isteklere uygulandığından, eşleşen tüm isteklerin yeniden yazılıp yazılmayacağını dikkatlice değerlendirin. Gerekmiyorsa, regex yeniden yazma yöntemini düşünün.
Regex yeniden yazma
Regex yeniden yazma, bir düzenli ifade deseni olan mode parametresi ve yerine konacak dize olan replacement parametresini kullanarak istek yolunun bir bölümünü değiştirir. Söz dizimi ayrıntıları için regular expression syntax sayfasına bakın.
Örnek 1
Bir istek yolunu /aaa/one/bbb/one/ccc değerinden /aaa/two/bbb/two/ccc değerine değiştirmek için aşağıdaki yapılandırmayı kullanın:
Rota eşleşme koşulu: Eşleşme türü Exact Match olup yol
/aaa/one/bbb/one/cccolarak ayarlanır.Yeniden yazma: Yeniden yazma türü Regex Rewrite,
modedeğerionevereplacementdeğeritwoolarak ayarlanır.
Örnek 2
/httpbin ön ekini /httpbin/(.*)/(.*) gibi bir yoldan kaldırmak ve yakalanan iki grubun yerini değiştirmek için aşağıdaki yapılandırmayı kullanın:
Rota eşleşme koşulu: Eşleşme türü Regex Match olup yol
/httpbin/(.*)/(.*)olarak ayarlanır.Yeniden yazma: Yeniden yazma türü Regex Rewrite,
modedeğeri/httpbin/(.*)/(.*)vereplacementdeğeri/\2/\1olarak ayarlanır. Bu dizede\1, düzenli ifadedeki ilk yakalanan grubu;\2ise ikinci yakalanan grubu temsil eder. Bu durum, Nginx'te kullanılan $1 ve $2 değişkenlerine benzer.
Regex yeniden yazma, karmaşık söz dizimine sahip gelişmiş bir özelliktir ve genellikle özel durumlar için kullanılır. Gereksinimlerinizi karşılıyorsa ön ek yeniden yazma kullanmanız önerilir.
Ana bilgisayar adı yeniden yazma
Cloud-native API Gateway, tam eşleşmeli ana bilgisayar adı yeniden yazmayı destekler.
Örneğin, istek ana bilgisayar adını test.com değerinden dev.com değerine değiştirmek için ilke yapılandırmasında yeniden yazma ana bilgisayar adını dev.com olarak ayarlayın.