Halaman ini berlaku untuk Apigee dan Apigee hybrid.
Lihat dokumentasi
Apigee Edge.
Kebijakan HTTPModifier mengubah pesan permintaan atau respons yang ada.
Kebijakan ini memungkinkan Anda melakukan tindakan berikut pada pesan tersebut:
- Menambahkan parameter formulir, header, atau parameter kueri baru ke pesan
- Menghapus header, parameter kueri, dan parameter formulir dari pesan
- Menetapkan nilai properti yang ada dalam pesan
Dengan HTTPModifier, Anda dapat menambahkan, mengubah, atau menghapus properti permintaan atau respons. Atau, Anda dapat menggunakan HTTPModifier untuk membuat pesan permintaan atau respons kustom dan meneruskannya ke target alternatif, seperti yang dijelaskan dalam Membuat pesan permintaan kustom.
Kebijakan HTTPModifier dapat membuat variabel alur dengan elemen turunan berikut:
Urutan Anda mengatur elemen <Add>, <Set>,
dan <Remove> penting. Kebijakan menjalankan tindakan tersebut sesuai urutan
kemunculannya dalam konfigurasi kebijakan. Jika Anda perlu menghapus semua header, lalu menetapkan header tertentu, Anda harus menyertakan elemen <Remove> sebelum elemen <Set>.
Kebijakan ini adalah Kebijakan standar dan dapat di-deploy ke jenis lingkungan apa pun. Untuk mengetahui informasi tentang jenis dan ketersediaan kebijakan dengan setiap jenis lingkungan, lihat Jenis kebijakan.
Elemen <HTTPModifier>
Menentukan kebijakan HTTPModifier.
| Nilai Default | Lihat tab Kebijakan Default di bawah |
| Wajib? | Wajib |
| Jenis | Objek kompleks |
| Elemen Induk | T/A |
| Elemen Turunan |
<Add><AssignTo><DisplayName><IgnoreUnresolvedVariables><Remove><Set> |
Elemen <HTTPModifier> menggunakan sintaksis berikut:
Sintaksis
Elemen <HTTPModifier> menggunakan sintaksis berikut:
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <!-- All HTTPModifier child elements are optional --> <Add> <FormParams> <FormParam name="FORMPARAM_NAME">FORMPARAM_VALUE</FormParam> ... </FormParams> <Headers> <Header name="HEADER_NAME">HEADER_VALUE</Header> ... </Headers> <QueryParams> <QueryParam name="QUERYPARAM_NAME">QUERYPARAM_VALUE</QueryParam> ... </QueryParams> </Add> <AssignTo createNew="[true|false]" transport="http" type="[request|response]">DESTINATION_VARIABLE_NAME</AssignTo> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables> <!-- Can also be empty to remove everything from the message (<Remove/>) --> <Remove> <!-- Can also be an empty array to remove all FormParams (<FormParams/>) --> <FormParams> <FormParam name="FORMPARAM_NAME">FORMPARAM_VALUE</FormParam> ... </FormParams> <!-- Can also be an empty array to remove all Headers (<Headers/>) --> <Headers> <Header name="HEADER_NAME">HEADER_VALUE</Header> ... </Headers> <!-- Can also be an empty array to remove all QueryParams (<QueryParams/>) --> <QueryParams> <QueryParam name="QUERYPARAM_NAME">QUERYPARAM_VALUE</QueryParam> ... </QueryParams> </Remove> <Set> <FormParams> <FormParam name="FORMPARAM_NAME">FORMPARAM_VALUE</FormParam> ... </FormParams> <Headers> <Header name="HEADER_NAME">HEADER_VALUE</Header> ... </Headers> <Path>PATH</Path> <QueryParams> <QueryParam name="QUERYPARAM_NAME">QUERYPARAM_VALUE</QueryParam> ... </QueryParams> <StatusCode>HTTP_STATUS_CODE or {variable}</StatusCode> <Verb>[GET|POST|PUT|PATCH|DELETE|{variable}]</Verb> <Version>[1.0|1.1|{variable}]</Verb> </Set> </HTTPModifier>
Kebijakan Default
Contoh berikut menunjukkan setelan default saat Anda menambahkan kebijakan HTTPModifier ke alur di UI Apigee:
<HTTPModifier continueOnError="false" enabled="true" name="http-modifier-default"> <DisplayName>HTTP Modifier-1</DisplayName> <Properties/> <Remove> <Headers> <Header name="h1"/> </Headers> <QueryParams> <QueryParam name="q1"/> </QueryParams> <FormParams> <FormParam name="f1"/> </FormParams> </Remove> <Add> <Headers/> <QueryParams/> <FormParams/> </Add> <Set> <Headers/> <QueryParams/> <FormParams/> <!-- <Verb>GET</Verb> --> <Path/> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <AssignTo createNew="false" transport="http" type="request"/> </HTTPModifier>
Saat Anda menyisipkan kebijakan HTTPModifier baru di UI Apigee, template berisi stub untuk semua
kemungkinan operasi. Biasanya, Anda memilih operasi yang ingin dilakukan dengan kebijakan ini
dan menghapus elemen turunan lainnya. Misalnya, jika Anda ingin melakukan operasi penambahan, gunakan elemen
<Add> dan hapus <Remove> serta elemen turunan lainnya dari
kebijakan agar lebih mudah dibaca.
Elemen ini memiliki atribut berikut yang umum untuk semua kebijakan:
| Atribut | Default | Wajib? | Deskripsi |
|---|---|---|---|
name |
T/A | Wajib |
Nama internal kebijakan. Nilai atribut Secara opsional, gunakan elemen |
continueOnError |
false | Opsional | Tetapkan ke false untuk menampilkan error saat kebijakan gagal. Perilaku ini wajar terjadi untuk
sebagian besar kebijakan. Tetapkan ke true agar eksekusi alur berlanjut meskipun setelah kebijakan gagal. Lihat juga:
|
enabled |
benar | Opsional | Tetapkan ke true untuk menerapkan kebijakan. Tetapkan ke false untuk menonaktifkan
kebijakan. Kebijakan tidak akan diterapkan meskipun tetap terlampir ke alur. |
async |
false | Tidak digunakan lagi | Atribut ini tidak digunakan lagi. |
Tabel berikut memberikan deskripsi umum tentang elemen turunan
<HTTPModifier>:
| Elemen Turunan | Wajib? | Deskripsi |
|---|---|---|
| Operasi umum | ||
<Add> |
Opsional | Menambahkan informasi ke objek pesan yang ditentukan oleh
elemen <AssignTo>.
Untuk menimpa header atau parameter yang ada, gunakan elemen |
<Remove> |
Opsional | Menghapus elemen tertentu dari variabel pesan yang ditentukan dalam
elemen <AssignTo>. |
<Set> |
Opsional | Mengganti nilai properti yang ada pada permintaan atau respons, yang ditentukan oleh
elemen <AssignTo>.
|
| Elemen turunan lainnya | ||
<AssignTo> |
Opsional | Menentukan pesan mana yang dioperasikan oleh kebijakan HTTPModifier. Bagian ini dapat berupa permintaan atau respons standar, atau pesan kustom baru. |
<IgnoreUnresolvedVariables> |
Opsional | Menentukan apakah pemrosesan berhenti saat variabel yang belum diselesaikan ditemukan. |
Setiap elemen turunan ini dijelaskan di bagian selanjutnya.
Contoh
Contoh berikut menunjukkan beberapa cara Anda dapat menggunakan kebijakan HTTPModifier:
1: Tambahkan header
Contoh berikut menambahkan header ke permintaan dengan elemen
<Add>. Variabel VerifyAPIKey dalam contoh ini dibuat
oleh kebijakan VerifyAPIKey:
<HTTPModifier name="HM-add-headers-1">
<Add>
<Headers>
<Header name="partner-id">{verifyapikey.VAK-1.developer.app.partner-id}</Header>
</Headers>
</Add>
<AssignTo>request</AssignTo>
</HTTPModifier>2: Ubah respons
Contoh berikut mengubah objek respons yang ada dengan menambahkan header ke objek tersebut:
<HTTPModifier name="HM-modify-response">
<Set>
<Headers>
<Header name="Cache-Hit">{lookupcache.LookupCache-1.cachehit}</Header>
</Headers>
</Set>
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<AssignTo>response</AssignTo>
</HTTPModifier>Contoh ini tidak membuat pesan baru. Sebagai gantinya, pesan ini mengubah pesan respons yang ada dengan menambahkan header HTTP.
Karena contoh ini menentukan response sebagai nama variabel dalam
elemen <AssignTo>, kebijakan ini mengubah objek respons yang awalnya
ditetapkan dengan data yang ditampilkan oleh server target.
Header HTTP yang ditambahkan ke pesan respons oleh kebijakan ini berasal dari variabel yang diisi oleh kebijakan LookupCache. Oleh karena itu, pesan respons yang diubah oleh kebijakan HTTPModifier ini berisi header HTTP yang menunjukkan apakah hasil telah ditarik dari cache atau tidak. Menetapkan header dalam respons dapat berguna untuk proses debug dan pemecahan masalah.
3: Hapus parameter kueri
Contoh berikut menghapus parameter kueri apikey dari permintaan:
<HTTPModifier name="HM-remove-query-param">
<Remove>
<QueryParams>
<QueryParam name="apikey"/>
</QueryParams>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Sebaiknya hapus parameter kueri apikey dari pesan permintaan
saat Anda menggunakan kebijakan VerifyAPIKey untuk autentikasi pengguna. Anda melakukannya untuk mencegah
informasi kunci sensitif diteruskan ke target backend.
Referensi elemen turunan
Bagian ini menjelaskan elemen turunan <HTTPModifier>.
<Add>
Menambahkan informasi ke permintaan atau respons, yang ditentukan oleh elemen <AssignTo>.
Elemen <Add> menambahkan properti baru pada pesan yang tidak ada di pesan asli. Perhatikan bahwa <Set> juga menyediakan fungsi ini. Untuk mengubah nilai
properti yang ada, gunakan elemen <Set>.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Jenis kompleks |
| Elemen Induk |
<HTTPModifier>
|
| Elemen Turunan |
<FormParams><Headers><QueryParams> |
Elemen <Add> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier
continueOnError="[false|true]"
enabled="[true|false]"
name="POLICY_NAME" >
<Add>
<FormParams>
<FormParam name="FORMPARAM_NAME">FORMPARAM_VALUE</FormParam>
...
</FormParams>
<Headers>
<Header name="HEADER_NAME">HEADER_VALUE</Header>
...
</Headers>
<QueryParams>
<QueryParam name="QUERYPARAM_NAME">QUERYPARAM_VALUE</QueryParam>
...
</QueryParams>
</Add>
</HTTPModifier>Contoh 1
Contoh berikut menggunakan elemen <FormParams> untuk mendapatkan nilai
tiga parameter string kueri dari permintaan awal dan menetapkannya sebagai parameter formulir pada
permintaan endpoint target:
<HTTPModifier name="HM-add-formparams-3">
<Add>
<FormParams>
<FormParam name="username">{request.queryparam.name}</FormParam>
<FormParam name="zip_code">{request.queryparam.zipCode}</FormParam>
<FormParam name="default_language">{request.queryparam.lang}</FormParam>
</FormParams>
</Add>
<Remove>
<QueryParams/>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 2
Contoh berikut menggunakan elemen <Headers> untuk menambahkan
header partner-id ke permintaan yang akan dikirim ke endpoint target:
<HTTPModifier name="HM-add-headers-1">
<Add>
<Headers>
<Header name="partner-id">{verifyapikey.VAK-1.developer.app.partner-id}</Header>
</Headers>
</Add>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 3
Contoh berikut menggunakan elemen <QueryParams> untuk menambahkan satu parameter
kueri dengan nilai statis ke permintaan:
<HTTPModifier name="HM-add-queryparams-1">
<Add>
<QueryParams>
<QueryParam name="myParam">42</QueryParam>
</QueryParams>
</Add>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh ini menggunakan <Add> dalam preflow permintaan. Jika Anda melihat hasilnya di alat
seperti alat Debug, permintaan ke https://example-target.com/get akan menjadi
https://example-target.com/get?myParam=42.
Elemen turunan <Add> mendukung penggantian string dinamis, yang dikenal sebagai
template pesan.
<FormParams> (anak dari <Add>)
Menambahkan parameter formulir baru ke pesan permintaan. Elemen ini tidak memengaruhi pesan respons.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Array elemen <FormParam> |
| Elemen Induk |
<Add>
|
| Elemen Turunan |
<FormParam> |
Elemen <FormParams> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <Add> <FormParams> <FormParam name="FORMPARAM_NAME">FORMPARAM_VALUE</FormParam> ... </FormParams> <AssignTo createNew="[true|false]" transport="http" type="[request|response]">DESTINATION_VARIABLE_NAME</AssignTo> </Add> </HTTPModifier>
Contoh 1
Contoh berikut menambahkan satu parameter formulir (answer) dan nilai statis (42) ke
permintaan:
<HTTPModifier name="HM-add-formparams-1">
<Add>
<FormParams>
<FormParam name="answer">42</FormParam>
</FormParams>
</Add>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 2
Contoh berikut mendapatkan nilai parameter kueri name dan
menambahkannya ke permintaan sebagai parameter formulir, lalu menghapus parameter kueri:
<HTTPModifier name="HM-Swap-QueryParam-to-FormParams">
<Add>
<FormParam name="name">{request.queryparam.name}
</Add>
<Remove>
<QueryParam name="name"/>
</Remove>
</HTTPModifier>Perhatikan bahwa contoh ini tidak menentukan target dengan <AssignTo>. Kebijakan ini hanya menambahkan parameter
ke permintaan.
Contoh 3
Contoh berikut menambahkan beberapa parameter formulir ke permintaan:
<HTTPModifier name="HM-add-formparams-3">
<Add>
<FormParams>
<FormParam name="username">{request.queryparam.name}</FormParam>
<FormParam name="zip_code">{request.queryparam.zipCode}</FormParam>
<FormParam name="default_language">{request.queryparam.lang}</FormParam>
</FormParams>
</Add>
<Remove>
<QueryParams/>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh ini mendapatkan parameter string kueri dari permintaan asal dan menambahkannya sebagai parameter formulir dengan nama yang berbeda. Kemudian, parameter kueri asli akan dihapus. Apigee akan mengirimkan permintaan yang telah diubah ke endpoint target.
Anda dapat menggunakan Alat debug untuk melihat alurnya. Anda akan melihat bahwa isi permintaan berisi data formulir yang dienkode ke URL, yang awalnya diteruskan sebagai parameter string kueri:
username=nick&zip_code=90210&default_language=en
Anda dapat menggunakan <FormParams> hanya jika kriteria berikut terpenuhi:
- Kata kerja HTTP:
GET,POST - Jenis pesan: Permintaan
- Salah satu (atau kedua) hal berikut:
- Data formulir: Ditetapkan ke beberapa nilai, atau
""(string kosong). Misalnya, dengancurl, tambahkan-d ""ke permintaan Anda. - Header
Content-Length: Ditetapkan ke 0 (jika tidak ada data dalam permintaan asli; jika tidak, panjang saat ini, dalam byte). Misalnya, dengancurl, tambahkan-H "Content-Length: 0"ke permintaan Anda.
- Data formulir: Ditetapkan ke beberapa nilai, atau
Contoh:
curl -vL -X POST -d "" -H "Content-Type: application/x-www-form-urlencoded" https://ahamilton-eval-test.apigee.net/am-test
Saat Anda menambahkan <FormParams>, Apigee akan menyetel header <FormParams> permintaan ke
application/x-www-form-urlencoded sebelum mengirim pesan ke layanan target.Content-Type
<Headers> (anak dari <Add>)
Menambahkan header baru ke permintaan atau respons yang ditentukan, yang ditentukan oleh
elemen <AssignTo>.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Array elemen <Header> |
| Elemen Induk |
<Add>
|
| Elemen Turunan |
<Header> |
Elemen <Headers> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier
continueOnError="[false|true]"
enabled="[true|false]"
name="POLICY_NAME" >
<Add>
<Headers>
<Header name="HEADER_NAME">HEADER_VALUE</Header>
...
</Headers>
</Add>
</HTTPModifier>Contoh 1
Contoh berikut menambahkan header partner-id ke pesan permintaan, dan
menetapkan nilai variabel alur verifyapikey.VAK-1.developer.app.partner-id ke header tersebut.
<HTTPModifier name="HM-add-headers-1">
<Add>
<Headers>
<Header name="partner-id">{verifyapikey.VAK-1.developer.app.partner-id}</Header>
</Headers>
</Add>
<AssignTo>request</AssignTo>
</HTTPModifier><QueryParams> (anak dari <Add>)
Menambahkan parameter kueri baru ke permintaan. Elemen ini tidak berpengaruh pada respons.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Array elemen <QueryParam> |
| Elemen Induk |
<Add>
|
| Elemen Turunan |
<QueryParam> |
Elemen <QueryParams> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier
continueOnError="[false|true]"
enabled="[true|false]"
name="POLICY_NAME" >
<Add>
<QueryParams>
<QueryParam name="QUERYPARAM_NAME">QUERYPARAM_VALUE</QueryParam>
...
</QueryParams>
</Add>
</HTTPModifier>Contoh 1
Contoh berikut menambahkan parameter kueri myParam ke permintaan dan menetapkan nilai
42 ke parameter tersebut:
<HTTPModifier name="HM-add-queryparams-1">
<Add>
<QueryParams>
<QueryParam name="myParam">42</QueryParam>
</QueryParams>
</Add>
<AssignTo>request</AssignTo>
</HTTPModifier>Anda dapat menggunakan <QueryParams> hanya jika kriteria berikut terpenuhi:
- Kata kerja HTTP:
GET,POST - Jenis pesan: Permintaan
Selain itu, Anda hanya dapat menetapkan parameter kueri jika atribut type elemen
<AssignTo> adalah pesan permintaan. Menetapkannya pada respons tidak akan berpengaruh.
Jika Anda menentukan array parameter kueri kosong dalam kebijakan
(<Add><QueryParams/></Add>), kebijakan tidak akan menambahkan parameter
kueri apa pun. Ini sama dengan menghilangkan <QueryParams>.
<AssignTo>
Menentukan objek yang dioperasikan oleh kebijakan HTTPModifier. Opsinya adalah:
- Pesan permintaan:
requestyang diterima oleh proxy API - Pesan respons:
responseyang ditampilkan dari server target - Pesan kustom: Objek permintaan atau respons kustom
Perhatikan bahwa dalam beberapa kasus, Anda tidak dapat mengubah objek yang menjadi sasaran kebijakan HTTPModifier.
Misalnya, Anda tidak dapat menggunakan <Add> atau <Set> untuk menambahkan atau mengubah parameter kueri
(<QueryParams>) atau parameter formulir (<FormParams>) pada respons. Anda hanya dapat
memanipulasi parameter kueri dan parameter formulir pada permintaan.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | String |
| Elemen Induk |
<HTTPModifier>
|
| Elemen Turunan | Tidak ada |
Jika Anda tidak menentukan <AssignTo>, atau jika Anda menentukan elemen <AssignTo>, tetapi tidak menentukan nilai teks untuk elemen tersebut, kebijakan akan bertindak berdasarkan permintaan atau respons default, yang didasarkan pada tempat kebijakan dijalankan. Jika kebijakan dijalankan dalam alur permintaan, kebijakan tersebut akan memengaruhi pesan permintaan. Jika dijalankan dalam alur respons, kebijakan akan memengaruhi respons secara default.
Elemen <AssignTo> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <AssignTo createNew="[true|false]" transport="http" type="[request|response]">DESTINATION_VARIABLE_NAME</AssignTo> </HTTPModifier>
Contoh 1
Contoh berikut tidak menentukan pesan dalam teks <AssignTo>. Hal ini menyiratkan
bahwa kebijakan akan bertindak pada pesan request atau response,
bergantung pada tempat kebijakan dijalankan.
<HTTPModifier name="assignto-1"> <AssignTo createNew="false" transport="http" type="request"/>-- no-op --> ... </HTTPModifier>
Jika Anda menentukan createNew="false", dan tidak memberikan nama pesan secara eksplisit,
atribut <AssignTo> lainnya tidak relevan. Dalam hal ini, Anda dapat
menghapus elemen <AssignTo> sepenuhnya.
Contoh 2
Contoh berikut membuat objek permintaan baru, yang menimpa objek yang ada:
<HTTPModifier name="assignto-2"> <AssignTo createNew="true" transport="http" type="request"/> ... </HTTPModifier>
Saat Anda membuat objek permintaan atau respons baru, elemen lain dari kebijakan HTTPModifier (seperti <Add> dan <Set>) akan bertindak pada objek
permintaan baru tersebut.
Anda dapat mengakses objek permintaan baru dalam kebijakan lain di alur nanti, atau mengirim objek permintaan baru ke layanan eksternal dengan kebijakan ServiceCallout.
Contoh 3
Contoh berikut membuat objek permintaan baru bernama MyRequestObject:
<HTTPModifier name="assignto-3"> <AssignTo createNew="true" transport="http" type="request">MyRequestObject</AssignTo> ... </HTTPModifier>
Saat Anda membuat objek permintaan atau respons baru, elemen lain dari kebijakan HTTPModifier (seperti <Add> dan <Set>) akan bertindak pada objek
permintaan baru tersebut.
Anda dapat mengakses objek permintaan baru berdasarkan nama dalam kebijakan lain di alur nanti, atau mengirim objek permintaan baru ke layanan eksternal dengan kebijakan ServiceCallout.
Tabel berikut menjelaskan atribut <AssignTo>:
| Atribut | Deskripsi | Wajib? | Jenis |
|---|---|---|---|
createNew |
Menentukan apakah kebijakan ini membuat pesan baru saat menetapkan nilai. Jika Jika
Jika
|
Opsional | Boolean |
transport |
Menentukan jenis transportasi untuk jenis pesan permintaan atau respons. Nilai defaultnya adalah |
Opsional | String |
type |
Menentukan jenis pesan baru, jika createNew adalah true. Nilai
yang valid adalah request atau response.
Nilai defaultnya adalah |
Opsional | String |
<DisplayName>
Gunakan selain atribut name untuk memberi label pada kebijakan di editor proxy UI pengelolaan dengan nama yang berbeda dan lebih terdengar alami.
Elemen <DisplayName> umum untuk semua kebijakan.
| Nilai Default | T/A |
| Wajib? | Opsional. Jika Anda menghilangkan <DisplayName>, nilai atribut name kebijakan akan digunakan. |
| Jenis | String |
| Elemen Induk | <PolicyElement> |
| Elemen Turunan | Tidak ada |
Elemen <DisplayName> menggunakan sintaksis berikut:
Sintaks
<PolicyElement> <DisplayName>POLICY_DISPLAY_NAME</DisplayName> ... </PolicyElement>
Contoh
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
Elemen <DisplayName> tidak memiliki atribut atau elemen turunan.
<IgnoreUnresolvedVariables>
Menentukan apakah pemrosesan berhenti saat variabel yang belum diselesaikan ditemukan.
| Nilai Default | Salah |
| Wajib? | Opsional |
| Jenis | Boolean |
| Elemen Induk |
<HTTPModifier>
|
| Elemen Turunan | Tidak ada |
Setel ke true untuk mengabaikan variabel yang belum diselesaikan dan melanjutkan pemrosesan; jika tidak
false. Nilai defaultnya adalah false.
Menetapkan <IgnoreUnresolvedVariables> ke true berbeda dengan menetapkan continueOnError
<HTTPModifier> ke true karena khusus untuk menetapkan dan mendapatkan nilai
variabel. Jika Anda menyetel continueOnError ke true, Apigee akan mengabaikan semua error, bukan hanya error yang terjadi saat menggunakan variabel.
Elemen <IgnoreUnresolvedVariables> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier
continueOnError="[false|true]"
enabled="[true|false]"
name="POLICY_NAME" >
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
</HTTPModifier>Contoh 1
Contoh berikut menetapkan <IgnoreUnresolvedVariables> ke true:
<HTTPModifier name="HM-Set-Headers"> <Set> <Headers> <Header name='new-header'>{possibly-defined-variable}<Header> </Headers> </Set> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> </HTTPModifier>
Karena <IgnoreUnresolvedVariables> disetel ke true, jika
variabel possibly-defined-variable tidak ditentukan, kebijakan ini tidak akan
menampilkan kesalahan.
<Remove>
Menghapus header, parameter kueri, atau parameter formulir dari pesan. Tag kosong akan menghapus semua parameter terkait, termasuk header, formparams, dan queryparams.
Pesan yang terpengaruh dapat berupa permintaan atau respons. Anda menentukan pesan yang ditindaklanjuti oleh <Remove>
dengan menggunakan elemen <AssignTo>.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Jenis kompleks |
| Elemen Induk |
<HTTPModifier>
|
| Elemen Turunan |
<FormParams><Headers><QueryParams> |
Kasus penggunaan umum untuk <Remove> adalah menghapus parameter kueri atau header yang berisi informasi sensitif dari objek permintaan masuk, untuk menghindari pengirimannya ke server backend.
Elemen <Remove> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <!-- Can also be empty to remove everything from the message (<Remove/>) --> <Remove> <!-- Can also be an empty array to remove all FormParams (<FormParams/>) --> <FormParams> <FormParam name="FORMPARAM_NAME">FORMPARAM_VALUE</FormParam> ... </FormParams> <!-- Can also be an empty array to remove all Headers (<Headers/>) --> <Headers> <Header name="HEADER_NAME">HEADER_VALUE</Header> ... </Headers> <!-- Can also be an empty array to remove all QueryParams (<QueryParams/>) --> <QueryParams> <QueryParam name="QUERYPARAM_NAME">QUERYPARAM_VALUE</QueryParam> ... </QueryParams> </Remove> </HTTPModifier>
Contoh 1
Contoh berikut menghapus semua parameter formulir dan parameter kueri dari
objek request:
<HTTPModifier name="HM-remove-2">
<Remove>
<!-- Empty (<FormParams/>) removes all form parameters -->
<FormParams/>
<QueryParams>
<QueryParam name="qp1"/>
</QueryParams>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 2
Contoh berikut menghapus semua hal dari objek pesan:
<HTTPModifier name="HM-remove-3"> <Remove/> <AssignTo>request</AssignTo> </HTTPModifier>
Biasanya, Anda hanya akan melakukannya jika akan menggunakan elemen <Set> untuk
menetapkan beberapa nilai pengganti ke dalam pesan.
<FormParams> (anak dari <Remove>)
Menghapus parameter formulir yang ditentukan dari permintaan. Elemen ini tidak memengaruhi respons.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Array elemen <FormParam> atau array kosong |
| Elemen Induk |
<Remove>
|
| Elemen Turunan |
<FormParam> |
Elemen <FormParams> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <!-- Can also be empty to remove everything from the message (<Remove/>) --> <Remove> <!-- Can also be an empty array to remove all FormParams (<FormParams/>) --> <FormParams> <FormParam name="FORMPARAM_NAME">FORMPARAM_VALUE</FormParam> ... </FormParams> </Remove> </HTTPModifier>
Contoh 1
Contoh berikut menghapus tiga parameter formulir dari permintaan:
<HTTPModifier name="HM-remove-formparams-1">
<Remove>
<FormParams>
<FormParam name="form_param_1"/>
<FormParam name="form_param_2"/>
<FormParam name="form_param_3"/>
</FormParams>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 2
Contoh berikut menghapus semua parameter formulir dari permintaan:
<HTTPModifier name="HM-remove-formparams-2">
<Remove>
<FormParams/>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 3
Jika ada beberapa parameter formulir dengan nama yang sama, gunakan sintaksis berikut:
<HTTPModifier name="HM-remove-formparams-3">
<Remove>
<FormParams>
<FormParam name="f1"/>
<FormParam name="f2"/>
<FormParam name="f3.2"/>
</FormParams>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh ini menghapus f1, f2, dan nilai kedua f3. Jika f3 hanya memiliki satu
nilai, maka nilai tersebut tidak akan dihapus.
Anda dapat menggunakan <FormParams> hanya jika kriteria berikut terpenuhi:
- Jenis pesan: Permintaan
Content-Type:application/x-www-form-urlencoded
<Headers> (anak dari <Remove>)
Menghapus header HTTP yang ditentukan dari permintaan atau respons, yang ditentukan oleh
elemen <AssignTo>.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Array elemen <Header> atau array kosong |
| Elemen Induk |
<Remove>
|
| Elemen Turunan |
<Header> |
Elemen <Headers> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <!-- Can also be empty to remove everything from the message (<Remove/>) --> <Remove> <!-- Can also be an empty array to remove all Headers (<Headers/>) --> <Headers> <Header name="HEADER_NAME">HEADER_VALUE</Header> ... </Headers> </Remove> </HTTPModifier>
Contoh 1
Contoh berikut menghapus header user-agent dari permintaan:
<HTTPModifier name="HM-remove-one-header">
<Remove>
<Headers>
<Header name="user-agent"/>
</Headers>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 2
Contoh berikut menghapus semua header dari permintaan:
<HTTPModifier name="HM-remove-all-headers">
<Remove>
<Headers/>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 3
Jika ada beberapa header dengan nama yang sama, gunakan sintaks berikut:
<HTTPModifier name="HM-remove-headers-3">
<Remove>
<Headers>
<Header name="h1"/>
<Header name="h2"/>
<Header name="h3.2"/>
</Headers>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh ini menghapus h1, h2, dan nilai kedua h3 dari permintaan. Jika h3
hanya memiliki satu nilai, maka nilai tersebut tidak akan dihapus.
<QueryParams> (anak dari <Remove>)
Menghapus parameter kueri yang ditentukan dari permintaan. Elemen ini tidak memengaruhi respons.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Array elemen <QueryParam> atau array kosong |
| Elemen Induk |
<Remove>
|
| Elemen Turunan |
<QueryParam> |
Elemen <QueryParams> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <!-- Can also be empty to remove everything from the message (<Remove/>) --> <Remove> <!-- Can also be an empty array to remove all QueryParams (<QueryParams/>) --> <QueryParams> <QueryParam name="QUERYPARAM_NAME">QUERYPARAM_VALUE</QueryParam> ... </QueryParams> </Remove> </HTTPModifier>
Contoh 1
Contoh berikut menghapus satu parameter kueri dari permintaan:
<HTTPModifier name="HM-remove-queryparams-1">
<Remove>
<QueryParams>
<QueryParam name="qp1"/>
</QueryParams>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 2
Contoh berikut menghapus semua parameter kueri dari permintaan:
<HTTPModifier name="HM-remove-queryparams-2">
&tl;Remove>
<QueryParams/>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 3
Jika ada beberapa parameter kueri dengan nama yang sama, gunakan sintaks berikut:
<HTTPModifier name="HM-remove-queryparams-3">
<Remove>
<QueryParams>
<QueryParam name="qp1"/>
<QueryParam name="qp2"/>
<QueryParam name="qp3.2"/>
</QueryParams>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh ini menghapus qp1, qp2, dan nilai kedua qp3 dari permintaan. Jika
qp3 hanya memiliki satu nilai, maka nilai tersebut tidak akan dihapus.
Contoh 4
Contoh berikut menghapus parameter kueri apikey dari permintaan:
<HTTPModifier name="HM-remove-query-param">
<Remove>
<QueryParams>
<QueryParam name="apikey"/>
</QueryParams>
</Remove>
<AssignTo>request</AssignTo>
</HTTPModifier>Anda dapat menggunakan <QueryParams> hanya jika kriteria berikut terpenuhi:
- Kata kerja HTTP:
GET,POST - Jenis pesan: Permintaan
<Set>
Menetapkan informasi dalam pesan permintaan atau respons, yang ditentukan oleh
elemen <AssignTo>. <Set> akan menggantikan header atau
parameter kueri atau formulir yang sudah ada dalam pesan asli atau menambahkan yang baru jika belum ada.
Header dan parameter kueri serta formulir dalam pesan HTTP dapat menyimpan beberapa nilai. Untuk menambahkan
nilai tambahan untuk header atau parameter, gunakan elemen <Add>.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Jenis kompleks |
| Elemen Induk |
<HTTPModifier>
|
| Elemen Turunan |
<FormParams><Headers><Path><QueryParams><StatusCode><Verb><Version> |
Elemen <Set> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <Set> <FormParams> <FormParam name="FORMPARAM_NAME">FORMPARAM_VALUE</FormParam> ... </FormParams> <Headers> <Header name="HEADER_NAME">HEADER_VALUE</Header> ... </Headers> <Path>PATH</Path> <QueryParams> <QueryParam name="QUERYPARAM_NAME">QUERYPARAM_VALUE</QueryParam> ... </QueryParams> <StatusCode>HTTP_STATUS_CODE or {variable}</StatusCode> <Verb>[GET|POST|PUT|PATCH|DELETE|{variable}]</Verb> <Version>[1.0|1.1|{variable}]</Verb> </Set> </HTTPModifier>
Contoh
Contoh berikut menetapkan header tertentu. Jika kebijakan ini dilampirkan dalam alur Permintaan, sistem upstream akan dapat menerima header tambahan yang tidak disertakan dalam permintaan masuk asli.
<HTTPModifier name="HM-Set-Header">
<Set>
<Headers>
<Header name="authenticated-developer">{verifyapikey.VAK-1.developer.id}</Header>
</Headers>
</Set>
<AssignTo>request</AssignTo>
</HTTPModifier><FormParams> (anak dari <Set>)
Menimpa parameter formulir yang ada pada permintaan dan menggantinya dengan nilai baru yang Anda tentukan dengan elemen ini. Elemen ini tidak berpengaruh pada respons.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Array elemen <FormParam> |
| Elemen Induk |
<Set>
|
| Elemen Turunan |
<FormParam> |
Elemen <FormParams> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier
continueOnError="[false|true]"
enabled="[true|false]"
name="POLICY_NAME" >
<Set>
<FormParams>
<FormParam name="FORMPARAM_NAME">FORMPARAM_VALUE</FormParam>
...
</FormParams>
</Set>
</HTTPModifier>Contoh 1
Contoh berikut menetapkan parameter formulir bernama myparam ke nilai
variabel request.header.myparam dalam permintaan kustom baru:
<HTTPModifier name="HM-set-formparams-1"> <Set> <FormParams> <FormParam name="myparam">{request.header.myparam}</FormParam> </FormParams> </Set> <AssignTo createNew="true" transport="http" type="request>>MyCustomRequest</AssignTo> </HTTPModifier>
Anda dapat menggunakan <FormParams> hanya jika kriteria berikut terpenuhi:
- Verb HTTP:
POST - Jenis pesan: Permintaan
Jika Anda menentukan parameter formulir kosong dalam kebijakan
(<Add><FormParams/></Add>), kebijakan tidak akan menambahkan parameter
formulir apa pun. Ini sama dengan menghilangkan <FormParams>.
<Set> mengubah Content-Type pesan menjadi
application/x-www-form-urlencoded sebelum mengirimkannya ke endpoint target.
<Headers> (anak dari <Set>)
Menimpa header HTTP yang ada dalam permintaan atau respons, yang ditentukan oleh
elemen <AssignTo>.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Array elemen <Header> |
| Elemen Induk |
<Set>
|
| Elemen Turunan |
<Header> |
Elemen <Headers> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier
continueOnError="[false|true]"
enabled="[true|false]"
name="POLICY_NAME" >
<Set>
<Headers>
<Header name="HEADER_NAME">HEADER_VALUE</Header>
...
</Headers>
</Set>
</HTTPModifier>Contoh 1
Contoh berikut menetapkan header x-ratelimit-remaining ke nilai
variabel ratelimit.Quota-1.available.count:
<HTTPModifier name="HM-Set-RateLimit-Header">
<Set>
<Headers>
<Header name="X-RateLimit-Remaining">{ratelimit.Quota-1.available.count}</Header>
</Headers>
</Set>
<AssignTo>response</AssignTo>
</HTTPModifier>Jika Anda menentukan header kosong dalam kebijakan
(<Set><Headers/></Set>), kebijakan tidak akan menetapkan header apa pun. Hal ini akan memiliki efek yang sama dengan menghilangkan <Headers>.
<Path> (anak dari <Set>)
<QueryParams> (anak dari <Set>)
Menimpa parameter kueri yang ada dalam permintaan dengan nilai baru. Elemen ini tidak berpengaruh pada respons.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Array elemen <QueryParam> |
| Elemen Induk |
<Set>
|
| Elemen Turunan |
<QueryParam> |
Elemen <QueryParams> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier
continueOnError="[false|true]"
enabled="[true|false]"
name="POLICY_NAME" >
<Set>
<QueryParams>
<QueryParam name="QUERYPARAM_NAME">QUERYPARAM_VALUE</QueryParam>
...
</QueryParams>
</Set>
</HTTPModifier>Contoh 1
Contoh berikut menetapkan parameter kueri address ke nilai
variabel request.header.address:
<HTTPModifier name="HM-set-queryparams-1"> <Set> <QueryParams> <QueryParam name="address">{request.header.address}</QueryParam> </QueryParams> </Set> </HTTPModifier>
Anda dapat menggunakan <QueryParams> hanya jika kriteria berikut terpenuhi:
- Kata kerja HTTP:
GET,POST - Jenis pesan: Permintaan
Jika Anda menentukan parameter kueri kosong dalam kebijakan
(<Set><QueryParams/></Set>), kebijakan tidak akan menetapkan parameter
kueri apa pun. Ini sama dengan menghilangkan <QueryParams>.
<StatusCode> (anak dari <Set>)
Menetapkan kode status pada respons. Elemen ini tidak berpengaruh pada permintaan.
| Nilai Default | '200' (jika atribut createNew <AssignTo>
disetel ke 'true') |
| Wajib? | Opsional |
| Jenis | String atau VARIABLE |
| Elemen Induk |
<Set>
|
| Elemen Turunan | Tidak ada |
Elemen <StatusCode> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <Set> <StatusCode>HTTP_STATUS_CODE or {variable}</StatusCode> </Set> </HTTPModifier>
Contoh 1
Contoh berikut menetapkan kode status sederhana:
<HTTPModifier name="HM-set-statuscode-404">
<Set>
<StatusCode>404<<StatusCode>
</Set>
<AssignTo>response</AssignTo>
</HTTPModifier>Contoh 2
Konten <StatusCode> dianggap sebagai template pesan. Artinya, nama variabel yang diapit kurung kurawal akan diganti saat runtime dengan nilai variabel yang dirujuk, seperti yang ditunjukkan contoh berikut:
<HTTPModifier name="set-statuscode-2">
<Set>
<StatusCode>{calloutresponse.status.code}</StatusCode>
</Set>
<AssignTo>response</AssignTo>
</HTTPModifier>Anda dapat menggunakan <StatusCode> hanya jika kriteria berikut terpenuhi:
- Jenis pesan: Respons
<Verb> (anak dari <Set>)
Menetapkan kata kerja HTTP pada permintaan. Elemen ini tidak berpengaruh pada respons.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | String atau VARIABLE |
| Elemen Induk |
<Set>
|
| Elemen Turunan | Tidak ada |
Elemen <Verb> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <Set> <Verb>[GET|POST|PUT|PATCH|DELETE|{variable}]</Verb> </Set> </HTTPModifier>
Contoh 1
Contoh berikut menetapkan kata kerja sederhana pada permintaan:
<HTTPModifier name="HM-set-verb-1">
<Set>
<Verb>POST</Verb>
</Set>
<AssignTo>request</AssignTo>
</HTTPModifier>Contoh 2
Konten <Verb> dianggap sebagai template pesan. Artinya, nama variabel
yang diapit tanda kurung kurawal akan diganti saat runtime dengan nilai variabel
yang dirujuk.
Contoh berikut menggunakan variabel untuk mengisi kata kerja:
<HTTPModifier name="HM-set-verb-to-dynamic-value"> <Set> <Verb>{my_variable}</Verb> </Set> <AssignTo>request</AssignTo> </HTTPModifier>
Anda dapat menggunakan <Verb> hanya jika kriteria berikut terpenuhi:
- Jenis pesan: Permintaan
<Version> (anak dari <Set>)
Menetapkan versi HTTP pada permintaan. Elemen ini tidak berpengaruh pada respons.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | String atau VARIABLE |
| Elemen Induk |
<Set>
|
| Elemen Turunan | Tidak ada |
Elemen <Version> menggunakan sintaksis berikut:
Sintaksis
<HTTPModifier continueOnError="[false|true]" enabled="[true|false]" name="POLICY_NAME" > <Set> <Version>[1.0|1.1|{variable}]</Verb> </Set> </HTTPModifier>
Contoh 1
Contoh berikut menetapkan nomor versi ke 1.1:
<HTTPModifier name="HM-set-version-1">
<Set>
<Version>1.1</Version>
</Set>
</HTTPModifier>Contoh 2
Berikut ini menggunakan variabel dalam tanda kurung kurawal untuk menetapkan nomor versi:
<HTTPModifier name="HM-set-version-2">
<Set>
<Version>{my_version}</Version>
</Set>
<AssignTo>request</AssignTo>
</HTTPModifier>Konten <Version> dianggap sebagai template pesan. Artinya, nama variabel yang diapit tanda kurung kurawal akan diganti saat runtime dengan nilai variabel yang dirujuk.
Anda dapat menggunakan <Version> hanya jika kriteria berikut terpenuhi:
- Jenis pesan: Permintaan
Membuat pesan permintaan kustom
Anda dapat menggunakan HTTPModifier untuk membuat pesan permintaan kustom. Setelah membuat permintaan kustom, Anda dapat menggunakannya dengan cara berikut:
- Mengakses variabelnya di kebijakan lain
- Meneruskannya ke layanan eksternal
Untuk membuat pesan permintaan kustom, gunakan elemen <AssignTo> dalam kebijakan HTTPModifier
Anda. Setel createNew ke true dan tentukan nama pesan baru di isi
elemen, seperti yang ditunjukkan contoh berikut:
<HTTPModifier name="assignto-3"> <AssignTo createNew="true" transport="http" type="request">MyRequestObject</AssignTo> ... </HTTPModifier>
Secara default, Apigee tidak melakukan apa pun dengan pesan permintaan kustom. Setelah membuatnya, Apigee akan melanjutkan alur dengan permintaan asli. Untuk menggunakan permintaan kustom, tambahkan kebijakan yang menggunakan pesan permintaan dan secara eksplisit merujuk pesan permintaan yang baru dibuat dalam konfigurasi untuk kebijakan tersebut. Tindakan ini akan memungkinkan Anda meneruskan permintaan kustom ke endpoint layanan eksternal.
Contoh berikut membuat pesan permintaan kustom:
Contoh 1
Contoh berikut membuat objek permintaan kustom dengan HTTPModifier:
<HTTPModifier name="HTTPModifier-3"> <AssignTo createNew="true" type="request">MyCustomRequest</AssignTo> <Set> <QueryParams> <QueryParam name="address">{request.queryparam.addy}</QueryParam> </QueryParams> <Verb>GET</Verb> </Set> <IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables> </HTTPModifier>
Contoh ini:
- Membuat objek pesan permintaan baru bernama
MyCustomRequest. - Di MyCustomRequest, kebijakan ini:
- Menetapkan parameter kueri
addresspada pesan kustom ke nilai parameter kueriaddypermintaan masuk. - Menetapkan kata kerja HTTP ke
GET.
- Menetapkan parameter kueri
- Menetapkan
<IgnoreUnresolvedVariables>kefalse. Jika<IgnoreUnresolvedVariables>adalahfalse, jika salah satu variabel yang dirujuk dalam konfigurasi kebijakan tidak ada, Apigee akan memasuki status error dalam alur API.
Contoh 2
Berikut contoh lain yang menunjukkan cara membuat objek permintaan kustom dengan HTTPModifier:
<HTTPModifier name="HTTPModifier-2"> <AssignTo createNew="true" type="request">partner.request</AssignTo> <Set> <Verb>POST</Verb> </Set> </HTTPModifier>
Contoh ini membuat permintaan kustom baru bernama partner.request. Kemudian, setel
<Verb> pada permintaan baru.
Anda dapat mengakses berbagai properti pesan kustom dalam kebijakan HTTPModifier lain yang terjadi kemudian dalam alur. Contoh berikut mengambil nilai header dari respons kustom bernama, dan menempatkannya ke dalam header baru dalam pesan permintaan:
<HTTPModifier name="HM-Set-Header">
<AssignTo>request</AssignTo>
<Set>
<Headers>
<Header name="injected-approval-id">{MyCalloutResponse.header.approval-id}</Header>
</Headers>
</Set>
</HTTPModifier>Kode error
Bagian ini menjelaskan kode error dan pesan error yang ditampilkan serta variabel error yang ditetapkan oleh Apigee saat kebijakan ini memicu error. Informasi ini penting untuk diketahui jika Anda mengembangkan aturan error untuk menangani error. Untuk mempelajari lebih lanjut, lihat Yang perlu Anda ketahui tentang error kebijakan dan Menangani error.
Error runtime
Error ini dapat terjadi saat kebijakan dijalankan.
| Kode kerusakan | Status HTTP | Penyebab | Perbaiki |
|---|---|---|---|
entities.UnresolvedVariable |
500 |
Variabel Template Pesan dalam Tidak Ditetapkan atau di luar cakupan. | |
steps.httpmodifier.InvalidStatusCode |
500 |
Nilai kode status yang di-resolve tidak valid. Lihat string error untuk mengetahui informasi selengkapnya. | build |
Error saat deployment
Error ini dapat terjadi saat Anda men-deploy proxy yang berisi kebijakan ini.
| Nama error | Penyebab | Perbaiki |
|---|---|---|
InvalidIndex |
Jika indeks yang ditentukan dalam elemen <Remove> dari
kebijakan HTTPModifier adalah 0 atau angka negatif, deployment
Proxy API akan gagal. |
build |
Variabel error
Variabel ini ditetapkan saat kebijakan ini memicu error saat runtime. Untuk mengetahui informasi selengkapnya, lihat Yang perlu Anda ketahui tentang error kebijakan.
| Variabel | Dari mana | Contoh |
|---|---|---|
httpmodifier.POLICY_NAME.failed |
POLICY_NAME adalah nama kebijakan yang ditentukan pengguna yang menampilkan error. | httpmodifier.HM-SetResponse.failed = true |
Contoh respons error
{
"fault":{
"detail":{
"errorcode":"steps.httpmodifier.InvalidStatusCode"
},
"faultstring":"HTTPModifier[HM-SetResponse]: Invalid status code bad_request"
}
}Contoh aturan error
<FaultRule name="HTTPModifier Faults">
<Step>
<Name>HM-CustomNonMessageTypeErrorResponse</Name>
<Condition>(fault.name Matches "InvalidStatusCode")</Condition>
</Step>
<Condition>(httpmodifier.failed = true)</Condition>
</FaultRule>Skema
Setiap jenis kebijakan ditentukan oleh skema XML (.xsd). Sebagai referensi,
skema kebijakan
tersedia di GitHub.