Menulis ulang URL

BERLAKU UNTUK: Semua tingkatAN API Management

Kebijakan ini rewrite-uri mengonversi URL permintaan dari formulir publiknya ke formulir yang diharapkan oleh layanan web.

Gunakan kebijakan ini saat Anda perlu mengubah URL yang cocok untuk manusia atau browser ke dalam format URL yang diharapkan oleh layanan web. Terapkan kebijakan ini hanya saat mengekspos format URL alternatif, seperti URL bersih, URL RESTful, URL yang mudah digunakan, atau URL ramah SEO yang murni struktural dan tidak berisi string kueri, melainkan hanya berisi jalur resource (setelah skema dan otoritas). Anda sering melakukan perubahan ini untuk tujuan estetika, kegunaan, atau optimasi mesin pencari (SEO).

Catatan

Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.

Pernyataan kebijakan

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

Atribut

Nama Deskripsi Wajib diisi Bawaan
pola acu URL layanan web aktual dengan parameter string kueri apa pun. Ekspresi kebijakan diizinkan. Saat ekspresi digunakan, seluruh nilai harus berupa ekspresi. Ya T/A
copy-unmatched-params Menentukan apakah parameter kueri dalam permintaan masuk yang tidak ada di templat URL asli ditambahkan ke URL yang ditentukan oleh templat penulisan ulang. Ekspresi kebijakan diizinkan. Tidak. true

Penggunaan

Catatan penggunaan

Anda hanya dapat menambahkan parameter string kueri dengan menggunakan kebijakan. Anda tidak dapat menambahkan parameter jalur templat tambahan di URL yang ditulis ulang.

Examples

Contoh 1: Penulisan ulang URL dasar

Dalam contoh berikut, URL publik ditulis ulang agar sesuai dengan format URL layanan backend, dan parameter kueri disertakan berdasarkan logika lain.

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

  • URL Permintaan - 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>

Contoh 2: Salin parameter yang tidak cocok

Dalam contoh berikut, URL publik ditulis ulang agar sesuai dengan format URL layanan backend, dan kebijakan menyalin parameter kueri yang tidak cocok ke URL baru.

<!-- 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 -->

Contoh 3: Jangan menyalin parameter yang tidak cocok

Dalam contoh berikut, URL publik ditulis ulang agar sesuai dengan format URL layanan backend, dan kebijakan menghapus parameter kueri yang tidak cocok.

<!-- 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 -->

Contoh 4: Gunakan ekspresi kebijakan dalam templat

Dalam contoh berikut, kebijakan menggunakan ekspresi dalam templat untuk membuat permintaan ke backend.

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

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: