Membuat kebijakan tingkat lanjut
Unit ini memberikan referensi untuk kebijakan API Management berikut:
- Alur kontrol - Menerapkan pernyataan kebijakan secara bersyarat berdasarkan hasil evaluasi ekspresi Boolean.
- Teruskan permintaan - Meneruskan permintaan ke layanan backend.
- Batasi konkurensi - Mencegah kebijakan yang terlampir dijalankan oleh lebih dari jumlah permintaan yang ditentukan pada satu waktu.
- Masuk ke Hub Kejadian - Mengirim pesan dalam format yang ditentukan ke Hub Kejadian yang ditentukan oleh entitas Pencatat.
- Respons mock - Membatalkan eksekusi alur dan mengembalikan respons mock langsung ke pemanggil.
- Coba lagi - Mencoba kembali eksekusi pernyataan kebijakan yang terlampir, jika dan hingga kondisi terpenuhi. Eksekusi berulang pada interval waktu yang ditentukan dan hingga jumlah coba lagi yang ditentukan.
Alur kontrol
Kebijakan ini choose
menerapkan pernyataan kebijakan tertutup berdasarkan hasil evaluasi ekspresi boolean, mirip dengan if-then-else atau switch construct dalam bahasa pemrograman.
<choose>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<when condition="Boolean expression | Boolean constant">
<!— one or more policy statements to be applied if the above condition is true -->
</when>
<otherwise>
<!— one or more policy statements to be applied if none of the above conditions are true -->
</otherwise>
</choose>
Kebijakan alur kontrol harus mengandung setidaknya satu elemen <when/>
. Elemen <otherwise/>
adalah opsional. Ketentuan di elemen <when/>
dievaluasi dalam urutan kemunculannya dalam kebijakan. Pernyataan kebijakan yang diapit dalam elemen pertama <when/>
diterapkan saat atribut kondisi benar. Kebijakan yang diapit dalam <otherwise/>
elemen, jika ada, diterapkan jika semua <when/>
atribut kondisi elemen salah.
Meneruskan permintaan
forward-request
Kebijakan akan 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.
Penghapusan kebijakan ini akan mengakibatkan permintaan yang tidak diteruskan ke layanan backend. Kebijakan di bagian keluar dievaluasi segera setelah keberhasilan penyelesaian kebijakan di bagian masuk.
<forward-request timeout="time in seconds" follow-redirects="true | false"/>
Membatasi konkurensi
Kebijakan limit-concurrency
mencegah kebijakan yang terlampir dijalankan oleh lebih dari jumlah permintaan yang ditentukan kapan saja. Ketika permintaan melebihi angka tersebut, permintaan baru segera gagal dengan kode status Permintaan Terlalu Banyak 429.
<limit-concurrency key="expression" max-count="number">
<!— nested policy statements -->
</limit-concurrency>
Log ke Pusat Aktivitas
Kebijakan log-to-eventhub
mengirimkan pesan dalam format yang ditentukan ke Hub Kejadian yang ditentukan oleh entitas Pencatat. Sesuai dengan namanya, kebijakan digunakan untuk menyimpan informasi konteks permintaan atau respons yang dipilih untuk analisis online atau offline.
<log-to-eventhub logger-id="id of the logger entity" partition-id="index of the partition where messages are sent" partition-key="value used for partition assignment">
Expression returning a string to be logged
</log-to-eventhub>
Respons mock
mock-response
, seperti namanya, digunakan untuk meniru API dan pengoperasian. Ini membatalkan eksekusi alur normal dan mengembalikan respons mock ke pemanggil. Kebijakan tersebut selalu berusaha mengembalikan respons dengan ketelitian tertinggi. Ini lebih dipilih contoh konten respons, jika tersedia. Ini menghasilkan respons sampel dari skema, ketika skema disediakan dan contohnya tidak. Jika contoh atau skema tidak ditemukan, respons tanpa konten dikembalikan.
<mock-response status-code="code" content-type="media type"/>
Coba lagi
Kebijakan retry
menjalankan kebijakan turunannya satu kali dan kemudian mencoba kembali eksekusinya hingga percobaan ulang condition
menjadi false
atau coba lagi count
habis.
<retry
condition="boolean expression or literal"
count="number of retry attempts"
interval="retry interval in seconds"
max-interval="maximum retry interval in seconds"
delta="retry interval delta in seconds"
first-fast-retry="boolean expression or literal">
<!-- One or more child policies. No restrictions -->
</retry>
Mengembalikan respons
Kebijakan return-response
membatalkan eksekusi alur dan mengembalikan respons default atau kustom ke pemanggil. Respons default adalah 200 OK
tanpa isi. Respons khusus dapat ditentukan melalui variabel konteks atau pernyataan kebijakan. Ketika keduanya disediakan, pernyataan kebijakan memodifikasi variabel konteks sebelum dikembalikan ke pemanggil.
<return-response response-variable-name="existing context variable">
<set-header/>
<set-body/>
<set-status/>
</return-response>
Sumber daya lainnya
- Kunjungi kebijakan API Management untuk contoh kebijakan selengkapnya.
- Penanganan kesalahan dalam kebijakan API Management