Meneruskan permintaan

BERLAKU UNTUK: Semua tingkatAN API Management

Kebijakan forward-request meneruskan permintaan masuk ke layanan backend yang ditentukan dalam konteks permintaan. URL layanan backend ditentukan dalam pengaturan API dan dapat diubah menggunakan kebijakan setel layanan backend.

Penting

  • Kebijakan ini diperlukan untuk meneruskan permintaan ke backend API. Secara default, API Management menyiapkan kebijakan ini dalam cakupan global.
  • Penghapusan kebijakan ini akan mengakibatkan permintaan yang tidak diteruskan ke layanan backend. Kebijakan di bagian keluar akan langsung dievaluasi setelah selesainya kebijakan di bagian masuk.

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

<forward-request http-version="1 | 2or1 | 2" timeout="time in seconds (alternatively, use timeout-ms)" | timeout-ms="time in milliseconds (alternatively, use timeout)" continue-timeout="time in seconds" follow-redirects="false | true" buffer-request-body="false | true" buffer-response="true | false" fail-on-error-status-code="false | true"/>

Atribut

Atribut Deskripsi Wajib diisi Default
waktu habis Jumlah waktu dalam detik untuk menunggu header respons HTTP dikembalikan oleh layanan backend sebelum kesalahan batas waktu dimunculkan. Nilai minimum adalah 0 detik. Nilai yang lebih besar dari 240 detik mungkin tidak dihormati, karena infrastruktur jaringan yang mendasar dapat menghilangkan koneksi diam setelah waktu ini. Ekspresi kebijakan diizinkan. Anda dapat menentukan keduanya timeout atau timeout-ms tetapi tidak keduanya. No 300
timeout-ms Jumlah waktu dalam milidetik untuk menunggu header respons HTTP dikembalikan oleh layanan backend sebelum kesalahan waktu habis dimunculkan. Nilai minimum adalah 0 mdtk. Ekspresi kebijakan diizinkan. Anda dapat menentukan keduanya timeout atau timeout-ms tetapi tidak keduanya. No T/A
waktu habis berlanjut Jumlah waktu dalam detik untuk 100 Continue menunggu kode status dikembalikan oleh layanan backend sebelum kesalahan batas waktu dinaikkan. Ekspresi kebijakan diizinkan. No T/A
versi http Versi spesifikasi HTTP yang akan digunakan saat mengirim respons HTTP ke layanan backend. Saat menggunakan 2or1, gateway akan mendukung HTTP /2 melalui /1, tetapi kembali ke HTTP /1 jika HTTP /2 tidak berfungsi. No 1
pengalihan tindak lanjut Menentukan apakah pengalihan dari layanan backend diikuti oleh gateway atau dikembalikan ke pemanggil. Ekspresi kebijakan diizinkan. No false
buffer-request-body Ketika diatur ke true, permintaan di-buffer dan akan digunakan kembali saat coba lagi. No false
buffer-response Memengaruhi pemrosesan respons yang tergugus. Ketika diatur ke false, setiap gugus yang diterima dari backend segera dikembalikan ke pemanggil. Ketika diatur ke true, gugus di-buffer (8 KB, kecuali akhir aliran terdeteksi) dan hanya kemudian dikembalikan ke pemanggil.

Atur ke false dengan backend seperti yang menerapkan peristiwa yang dikirim server (SSE) yang mengharuskan konten dikembalikan atau dialirkan segera ke pemanggil. Ekspresi kebijakan tidak diizinkan.
No true
fail-on-error-status-code Saat diatur ke true, memicu bagian on-error untuk kode respons dalam kisaran 400 hingga 599 inklusif. Ekspresi kebijakan tidak diizinkan. No false

Penggunaan

Contoh

Kirim permintaan ke backend HTTP/2

Kebijakan tingkat API berikut meneruskan semua permintaan API ke layanan backend HTTP/2.

<!-- api level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request http-version="2or1"/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Ini diperlukan untuk beban kerja HTTP /2 atau gRPC dan saat ini hanya didukung di gateway yang dihost sendiri. Pelajari selengkapnya di gambaran umum gateway API kami.

Meneruskan permintaan dengan interval waktu habis

Kebijakan tingkat API berikut meneruskan semua permintaan API ke layanan backend dengan interval waktu tunggu 60 detik.

<!-- api level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request timeout="60"/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Mewarisi kebijakan dari cakupan induk

Kebijakan tingkat pengoperasian ini menggunakan elemen base untuk mewarisi kebijakan backend dari cakupan tingkat API induk.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <base/>
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Jangan mewarisi kebijakan dari cakupan induk

Kebijakan tingkat operasi ini secara eksplisit meneruskan semua permintaan ke layanan backend dengan batas waktu 120 dan tidak mewarisi kebijakan backend tingkat API induk. Jika layanan backend merespons dengan kode status kesalahan dari 400 hingga 599 secara inklusif, bagian on-error akan dipicu.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <forward-request timeout="120" fail-on-error-status-code="true" />
        <!-- effective policy. note the absence of <base/> -->
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Jangan meneruskan permintaan ke backend

Kebijakan tingkat operasi ini tidak meneruskan permintaan ke layanan backend.

<!-- operation level -->
<policies>
    <inbound>
        <base/>
    </inbound>
    <backend>
        <!-- no forwarding to backend -->
    </backend>
    <outbound>
        <base/>
    </outbound>
</policies>

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: