URL'yi Yeniden Yaz

UYGULANANLAR: Tüm API Management katmanları

Polinen rewrite-uri , istek URL'sini genel formundan, web servisinin beklediği forma dönüştürür.

Bu politikayı, web servisinin beklediği URL formatına insan dostu veya tarayıcı dostu bir URL'yi dönüştürmeniz gerektiğinde kullanın. Bu politika, yalnızca temiz URL'ler, RESTful URL'ler, kullanıcı dostu URL'ler veya tamamen yapısal olup sorgu dizisi içermeyen sadece kaynağın yolunu (şema ve otoriteden sonra) içeren SEO dostu URL'ler gibi alternatif URL formatlarını açıklarken uygulanır. Bu değişikliği genellikle estetik, kullanılabilirlik veya arama motoru optimizasyonu (SEO) amaçları için yaparsınız.

Not

İlkenin öğelerini ve alt öğelerini ilke bildiriminde sağlanan sırayla ayarlayın. API Management ilkelerini ayarlama veya düzenleme hakkında daha fazla bilgi edinin.

İlke bildirimi

<rewrite-uri template="uri template" copy-unmatched-params="true | false" />

Özellikler

Adı Açıklama Zorunlu Varsayılan
şablonu Sorgu dizesi parametreleriyle gerçek web hizmeti URL'si. İlke ifadelerine izin verilir. İfadeler kullanıldığında, değerin tamamı bir ifade olmalıdır. Evet Yok
copy-unmatched-params Gelen istekte orijinal URL şablonunda olmayan sorgu parametrelerinin yeniden yazma şablonu tarafından tanımlanan URL'ye eklenip eklenmediğini belirtir. İlke ifadelerine izin verilir. Hayır true

Kullanım

Kullanım notları

Sadece bu politikayı kullanarak sorgu dizisi parametreleri ekleyebilirsiniz. Yeniden yazılmış URL'ye ekstra şablon yolu parametreleri ekleyemezsiniz.

Örnekler

Örnek 1: Temel URL yeniden yazma

Aşağıdaki örnekte, halka açık URL, arka uç hizmet URL formatına uyacak şekilde yeniden yazılır ve sorgu parametreleri diğer mantıklara göre dahil edilir.

  • Genel URL - http://api.example.com/storenumber/ordernumber

  • İstek URL'si - http://api.example.com/v2/US/hardware/storenumber/ordernumber?City&State

<policies>
    <inbound>
        <base />
        <rewrite-uri template="/v2/US/hardware/{storenumber}/{ordernumber}?City=city&State=state" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>

Örnek 2: Eşleşmemiş parametreleri kopyala

Aşağıdaki örnekte, halka açık URL, arka uç hizmet URL formatına uyacak şekilde yeniden yazılır ve politika, eşleşmeyen sorgu parametrelerini yeni URL'ye kopyalar.

<!-- Assuming incoming request is /get?a=b&c=d and operation template is set to /get?a={b} -->
<policies>
    <inbound>
        <base />
        <rewrite-uri template="/put" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>
<!-- Resulting URL will be /put?c=d -->

Örnek 3: Eşleşmeyen parametreleri kopyalama

Aşağıdaki örnekte, genel URL, backend servis URL formatına uyacak şekilde yeniden yazılır ve politika, eşleşmeyen sorgu parametrelerini kaldırır.

<!-- Assuming incoming request is /get?a=b&c=d and operation template is set to /get?a={b} -->
<policies>
    <inbound>
        <base />
        <rewrite-uri template="/put" copy-unmatched-params="false" />
    </inbound>
    <outbound>
        <base />
    </outbound>
</policies>
<!-- Resulting URL will be /put -->

Örnek 4: Şablonda politika ifadesi kullanın

Aşağıdaki örnekte, politika şablondaki ifadeleri kullanarak arka uça isteği oluşturur.

<policies>
    <inbound>
        <base />
        <set-variable name="apiVersion" value="/v3" />
        <rewrite-uri template="@("/api" + context.Variables["apiVersion"] + context.Request.Url.Path)" />
    </inbound>
</policies>

İlkelerle çalışma hakkında daha fazla bilgi için bkz: