Apa
Kebijakan HTTPModifier dapat mengubah pesan permintaan atau respons yang ada.
Dengan kebijakan ini, Anda dapat melakukan tindakan berikut pada pesan tersebut:
- Tambahkan 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 dan meneruskannya ke target alternatif, seperti yang dijelaskan dalam Buat pesan permintaan kustom.
Kebijakan HTTPModifier dapat membuat variabel alur dengan turunan berikut elemen:
Urutan Anda mengatur <Add>
, <Set>
,
dan <Remove>
penting. Kebijakan akan menjalankan
tindakan tersebut dalam urutan
tempat keduanya muncul
di konfigurasi kebijakan. Jika Anda perlu menghapus semua {i>header<i}, maka setel
header tertentu, Anda harus menyertakan elemen <Remove>
sebelum elemen <Set>
.
Kebijakan ini merupakan Kebijakan standar dan dapat di-deploy ke jenis lingkungan apa pun. Tidak semua perlu diketahui pengguna tentang jenis kebijakan dan lingkungan. Sebagai informasi tentang jenis kebijakan dan ketersediaan untuk 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:
Sintaks
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 Anda 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 memasukkan kebijakan HTTPModifier baru di UI Apigee, template tersebut akan berisi stub untuk semua
operasi yang memungkinkan. Biasanya, Anda akan memilih operasi yang ingin dijalankan dengan kebijakan ini
dan menghapus sisa elemen turunan. Misalnya, jika Anda ingin melakukan operasi penambahan, gunakan
elemen <Add>
dan menghapus <Remove>
serta elemen turunan lainnya dari
kebijakan untuk membuatnya lebih mudah dibaca.
Elemen ini memiliki atribut berikut yang sama untuk semua kebijakan:
Atribut | Default | Wajib? | Deskripsi |
---|---|---|---|
name |
T/A | Wajib |
Nama internal kebijakan. Nilai atribut Atau, gunakan elemen |
continueOnError |
false | Opsional | Setel ke false untuk menampilkan error jika kebijakan gagal. Ini adalah perilaku yang wajar untuk sebagian besar kebijakan. Setel ke true agar eksekusi alur tetap berlanjut bahkan setelah kebijakan gagal. Lihat juga:
|
enabled |
true | Opsional | Setel ke true untuk menerapkan kebijakan. Setel ke false untuk menonaktifkan kebijakan. Kebijakan tidak akan diterapkan meskipun tetap melekat pada alur. |
async |
false | Tidak digunakan lagi | Atribut ini sudah tidak digunakan lagi. |
Tabel berikut memberikan deskripsi tingkat tinggi tentang elemen turunan dari
<HTTPModifier>
:
Elemen Turunan | Wajib? | Deskripsi |
---|---|---|
Operasi umum | ||
<Add> |
Opsional | Menambahkan informasi ke objek pesan yang ditentukan oleh metode
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 di permintaan atau respons, yang ditentukan oleh
elemen <AssignTo> .
|
Elemen turunan lainnya | ||
<AssignTo> |
Opsional | Menentukan pesan yang dioperasikan oleh kebijakan HTTPModifier. Hal ini dapat berupa standar permintaan atau respons, atau dapat berupa pesan kustom baru. |
<IgnoreUnresolvedVariables> |
Opsional | Menentukan apakah pemrosesan berhenti saat variabel yang belum terselesaikan ditemukan. |
Setiap elemen turunan ini dijelaskan di bagian selanjutnya.
Contoh
Contoh berikut menunjukkan beberapa cara untuk menggunakan HTTPModifier kebijakan:
1: Tambahkan header
Contoh berikut menambahkan header ke permintaan dengan atribut
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, kode ini memodifikasi pesan respons yang ada dengan menambahkan header HTTP.
Karena contoh ini menentukan response
sebagai nama variabel dalam
<AssignTo>
, kebijakan ini mengubah objek respons yang awalnya
dengan data yang dikembalikan oleh server target.
Header HTTP yang ditambahkan ke pesan respons oleh kebijakan ini berasal dari variabel diisi oleh kebijakan LookupCache. Oleh karena itu, pesan respons Kebijakan HTTPModifier berisi header HTTP yang menunjukkan apakah hasilnya telah atau tidak diambil dari cache. Mengatur {i>header<i} dalam respons bisa berguna untuk {i>debugging <i}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>
Praktik terbaiknya adalah menghapus parameter kueri apikey
dari permintaan
pesan saat Anda menggunakan kebijakan VerifyAPIKey untuk autentikasi pengguna. Anda melakukan ini untuk mencegah
informasi kunci sensitif agar tidak diteruskan ke target backend.
Referensi elemen turunan
Bagian ini menjelaskan elemen turunan dari <HTTPModifier>
.
<Add>
Menambahkan informasi ke permintaan atau respons, yang ditentukan oleh <AssignTo>
.
Elemen <Add>
menambahkan properti baru pada pesan yang tidak ada dalam versi aslinya
untuk membuat pesan email baru. Perlu diperhatikan bahwa <Set>
juga menyediakan fungsi ini. Untuk mengubah nilai
yang sudah 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:
Sintaks
<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 elemen
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 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 pra-alur permintaan. Jika Anda melihat hasilnya
di sebuah alat,
seperti Alat Debug, permintaan ke https://example-target.com/get
menjadi
https://example-target.com/get?myParam=42
.
Elemen turunan <Add>
mendukung substitusi string dinamis, yang dikenal sebagai
template pesan.
<FormParams>
(turunan dari <Add>
)
Menambahkan parameter formulir baru ke pesan permintaan. Elemen ini tidak memengaruhi respons untuk membuat pesan email baru.
Nilai Default | T/A |
Wajib? | Opsional |
Jenis | Array elemen <FormParam> |
Elemen Induk |
<Add>
|
Elemen Turunan |
<FormParam> |
Elemen <FormParams>
menggunakan sintaksis berikut:
Sintaks
<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 parameter formulir tunggal (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 menambahkan atribut
parameter ke permintaan saja.
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 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 string kueri parameter:
username=nick&zip_code=90210&default_language=en
Anda hanya dapat menggunakan <FormParams>
jika kriteria berikut terpenuhi:
- Kata kerja HTTP:
GET
,POST
- Jenis pesan: Permintaan
- Salah satu (atau kedua) hal berikut:
- Data formulir: Tetapkan ke nilai tertentu, atau
""
(string kosong). Misalnya, dengancurl
, tambahkan-d ""
ke permintaan Anda. - Header
Content-Length
: Tetapkan ke 0 (jika tidak ada data dalam permintaan awal; jika tidak, panjang saat ini, dalam byte). Misalnya, dengancurl
tambahkan-H "Content-Length: 0"
ke permintaan Anda.
- Data formulir: Tetapkan ke nilai tertentu, 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 menetapkan header Content-Type
permintaan ke
application/x-www-form-urlencoded
sebelum mengirim pesan ke layanan target.
<Headers>
(turunan dari <Add>
)
Menambahkan header baru ke permintaan atau respons yang ditentukan, yang ditentukan oleh atribut
Elemen <AssignTo>
.
Nilai Default | T/A |
Wajib? | Opsional |
Jenis | Array elemen <Header> |
Elemen Induk |
<Add>
|
Elemen Turunan |
<Header> |
Elemen <Headers>
menggunakan sintaksis berikut:
Sintaks
<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>
(turunan 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:
Sintaks
<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 kolom tersebut:
<HTTPModifier name="HM-add-queryparams-1"> <Add> <QueryParams> <QueryParam name="myParam">42</QueryParam> </QueryParams> </Add> <AssignTo>request</AssignTo> </HTTPModifier>
Anda hanya dapat menggunakan <QueryParams>
jika kriteria berikut terpenuhi:
- Kata kerja HTTP:
GET
,POST
- Jenis pesan: Permintaan
Selain itu, Anda hanya dapat mengatur parameter kueri ketika elemen <AssignTo>
Atribut type
adalah pesan permintaan. Menetapkannya pada respons tidak akan berpengaruh.
Jika Anda menentukan array parameter kueri kosong dalam kebijakan
(<Add><QueryParams/></Add>
), kebijakan ini tidak menambahkan kueri apa pun
parameter. Ini sama dengan menghilangkan <QueryParams>
.
<AssignTo>
Menentukan objek mana yang dioperasikan oleh kebijakan HTTPModifier. Opsinya adalah:
- Pesan permintaan:
request
yang diterima oleh proxy API - Pesan respons:
response
yang ditampilkan dari server target - Pesan kustom: Objek permintaan atau respons kustom
Perhatikan bahwa dalam beberapa kasus, Anda tidak dapat mengubah objek tempat kebijakan HTTPModifier bertindak.
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 menetapkan elemen <AssignTo>
, tetapi
tidak menetapkan nilai teks untuk elemen, kebijakan
bertindak atas permintaan atau respons {i>default<i},
yang didasarkan pada tempat
kebijakan dijalankan. Jika kebijakan dijalankan dalam alur permintaan,
memengaruhi pesan permintaan. Jika dijalankan dalam alur respons, kebijakan akan memengaruhi respons
secara {i>default<i}.
Elemen <AssignTo>
menggunakan sintaksis berikut:
Sintaks
<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>
. Ini menyiratkan
bahwa kebijakan tersebut akan berfungsi pada pesan request
atau response
,
tergantung di mana
kebijakan dijalankan.
<HTTPModifier name="assignto-1"> <AssignTo createNew="false" transport="http" type="request"/> ... </HTTPModifier>
Jika Anda menentukan createNew="false"
, dan tidak memberikan nama pesan secara eksplisit,
atribut lain dari <AssignTo>
tidak relevan. Dalam hal ini, Anda mungkin
ingin menghilangkan 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 HTTPModifier
(seperti <Add>
dan <Set>
bertindak berdasarkan
.
Anda bisa mengakses objek permintaan baru di kebijakan lain nanti dalam alur, atau mengirim permintaan baru minta objek ke layanan eksternal dengan kebijakan Service callout.
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 HTTPModifier
(seperti <Add>
dan <Set>
bertindak berdasarkan
.
Anda dapat mengakses objek permintaan baru berdasarkan nama dalam kebijakan lain nanti dalam alur, atau mengirim permintaan baru minta objek ke layanan eksternal dengan kebijakan Service callout.
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 transpor untuk jenis pesan permintaan atau respons. Nilai defaultnya adalah |
Opsional | String |
type |
Menentukan jenis pesan baru, jika createNew adalah true . Berlaku
nilainya adalah request atau response .
Nilai defaultnya adalah |
Opsional | String |
<DisplayName>
Gunakan selain atribut name
untuk memberi label kebijakan di
editor proxy UI pengelolaan dengan nama yang berbeda dan lebih alami.
Elemen <DisplayName>
bersifat 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:
Sintaksis
<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 terselesaikan ditemukan.
Nilai Default | Salah |
Wajib? | Opsional |
Jenis | Boolean |
Elemen Induk |
<HTTPModifier>
|
Elemen Turunan | Tidak ada |
Tetapkan ke true
untuk mengabaikan variabel yang belum terselesaikan dan melanjutkan pemrosesan; sebaliknya
false
. Nilai defaultnya adalah false
.
Menyetel <IgnoreUnresolvedVariables>
ke true
berbeda dengan menyetel <HTTPModifier>
continueOnError
ke true
yang khusus untuk menetapkan dan mendapatkan nilai
variabel. Jika Anda menetapkan continueOnError
ke true
, Apigee akan mengabaikan semua error, bukan
hanya terjadi {i>error<i} saat
menggunakan variabel.
Elemen <IgnoreUnresolvedVariables>
menggunakan sintaksis berikut:
Sintaks
<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 akan
tidak memberikan kesalahan.
<Remove>
Menghapus header, parameter kueri, atau parameter formulir dari sebuah pesan. Tag kosong menghapus semua parameter yang sesuai termasuk header, formparams, dan queryparams.
Pesan yang terpengaruh dapat berupa permintaan atau respons. Anda menentukan pesan mana <Remove>
ditindaklanjuti 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 data sensitif
informasi dari objek permintaan masuk, agar tidak diteruskan ke server backend.
Elemen <Remove>
menggunakan sintaksis berikut:
Sintaks
<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 semuanya dari objek pesan:
<HTTPModifier name="HM-remove-3"> <Remove/> <AssignTo>request</AssignTo> </HTTPModifier>
Biasanya Anda akan melakukan ini hanya jika akan menggunakan elemen <Set>
untuk
menetapkan beberapa nilai pengganti ke dalam pesan.
<FormParams>
(turunan dari <Remove>
)
Menghapus parameter formulir yang ditentukan dari permintaan. Elemen ini tidak berpengaruh pada yang dihasilkan.
Nilai Default | T/A |
Wajib? | Opsional |
Jenis | Array dari elemen <FormParam> atau array kosong |
Elemen Induk |
<Remove>
|
Elemen Turunan |
<FormParam> |
Elemen <FormParams>
menggunakan sintaksis berikut:
Sintaks
<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 dari f3
. Jika f3
hanya memiliki satu
, maka tidak dihapus.
Anda hanya dapat menggunakan <FormParams>
jika kriteria berikut terpenuhi:
- Jenis pesan: Permintaan
Content-Type
:application/x-www-form-urlencoded
<Headers>
(turunan dari <Remove>
)
Menghapus header HTTP yang ditentukan dari permintaan atau respons, yang ditentukan oleh
Elemen <AssignTo>
.
Nilai Default | T/A |
Wajib? | Opsional |
Jenis | Array dari elemen <Header> atau array kosong |
Elemen Induk |
<Remove>
|
Elemen Turunan |
<Header> |
Elemen <Headers>
menggunakan sintaksis berikut:
Sintaks
<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 sintaksis 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 tidak dihapus.
<QueryParams>
(turunan dari <Remove>
)
Menghapus parameter kueri yang ditentukan dari permintaan. Elemen ini tidak berpengaruh pada yang dihasilkan.
Nilai Default | T/A |
Wajib? | Opsional |
Jenis | Array dari elemen <QueryParam> atau array kosong |
Elemen Induk |
<Remove>
|
Elemen Turunan |
<QueryParam> |
Elemen <QueryParams>
menggunakan sintaksis berikut:
Sintaks
<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 sintaksis 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 tidak 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 hanya dapat menggunakan <QueryParams>
jika kriteria berikut terpenuhi:
- Kata kerja HTTP:
GET
,POST
- Jenis pesan: Permintaan
<Set>
Menetapkan informasi dalam pesan permintaan atau respons, yang ditentukan oleh atribut
Elemen <AssignTo>
. <Set>
menimpa header atau
atau parameter formulir yang sudah ada dalam pesan asli atau menambahkan yang baru jika tidak ada.
Header dan kueri serta parameter formulir dalam pesan HTTP mungkin memiliki 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:
Sintaks
<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. Saat kebijakan ini dilampirkan di alur Permintaan, ini akan memungkinkan sistem hulu untuk menerima {i>header<i} 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>
(turunan dari <Set>
)
Menimpa parameter formulir yang ada pada permintaan dan menggantinya dengan nilai baru yang 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:
Sintaks
<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 yang disebut myparam
ke nilai
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 hanya dapat menggunakan <FormParams>
jika kriteria berikut terpenuhi:
- Kata kerja HTTP:
POST
- Jenis pesan: Permintaan
Jika Anda menetapkan parameter formulir kosong dalam kebijakan
(<Add><FormParams/></Add>
), kebijakan ini tidak menambahkan formulir apa pun
parameter. Ini sama dengan menghilangkan <FormParams>
.
<Set>
mengubah Content-Type
pesan menjadi
application/x-www-form-urlencoded
sebelum mengirimkannya ke endpoint target.
<Headers>
(turunan dari <Set>
)
Timpa 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:
Sintaks
<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 atribut
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 ini tidak menyetel header apa pun. Ini
akan memiliki efek yang sama dengan menghapus <Headers>
.
<Path>
(turunan dari <Set>
)
<QueryParams>
(turunan dari <Set>
)
Timpa parameter kueri yang ada dalam permintaan dengan nilai baru. Elemen ini tidak memiliki efek pada respons.
Nilai Default | T/A |
Wajib? | Opsional |
Jenis | Array elemen <QueryParam> |
Elemen Induk |
<Set>
|
Elemen Turunan |
<QueryParam> |
Elemen <QueryParams>
menggunakan sintaksis berikut:
Sintaks
<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 hanya dapat menggunakan <QueryParams>
jika kriteria berikut terpenuhi:
- Kata kerja HTTP:
GET
,POST
- Jenis pesan: Permintaan
Jika Anda menetapkan parameter kueri kosong dalam kebijakan
(<Set><QueryParams/></Set>
), kebijakan tidak menetapkan kueri apa pun
parameter. Ini sama dengan menghilangkan <QueryParams>
.
<StatusCode>
(turunan dari <Set>
)
Menetapkan kode status pada respons. Elemen ini tidak berpengaruh pada permintaan.
Nilai Default | '200' (jika atribut createNew <AssignTo>
ditetapkan ke 'true') |
Wajib? | Opsional |
Jenis | String atau VARIABLE |
Elemen Induk |
<Set>
|
Elemen Turunan | Tidak ada |
Elemen <StatusCode>
menggunakan sintaksis berikut:
Sintaks
<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>
diperlakukan sebagai template pesan. Ini berarti
nama variabel yang digabungkan dalam tanda kurung kurawal akan diganti saat runtime dengan nilai
variabel yang direferensikan, seperti yang ditampilkan contoh berikut:
<HTTPModifier name="set-statuscode-2"> <Set> <StatusCode>{calloutresponse.status.code}</StatusCode> </Set> <AssignTo>response</AssignTo> </HTTPModifier>
Anda hanya dapat menggunakan <StatusCode>
jika kriteria berikut terpenuhi:
- Jenis pesan: Respons
<Verb>
(turunan 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:
Sintaks
<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>
diperlakukan sebagai template pesan. Ini berarti
nama variabel
yang digabungkan dalam tanda kurung kurawal akan diganti saat runtime dengan nilai yang direferensikan
variabel.
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 hanya dapat menggunakan <Verb>
jika kriteria berikut terpenuhi:
- Jenis pesan: Permintaan
<Version>
(turunan 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:
Sintaks
<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
Kode berikut 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>
diperlakukan sebagai template pesan. Ini berarti
nama variabel yang digabungkan dalam tanda kurung kurawal akan diganti saat runtime dengan nilai yang direferensikan
variabel.
Anda hanya dapat menggunakan <Version>
jika kriteria berikut terpenuhi:
- Jenis pesan: Permintaan
Membuat pesan permintaan kustom
Anda dapat menggunakan HTTPModifier untuk membuat pesan permintaan kustom. Setelah Anda membuat Anda dapat menggunakannya dengan cara berikut:
- Mengakses variabelnya dalam kebijakan lain
- Meneruskannya ke layanan eksternal
Untuk membuat pesan permintaan kustom, gunakan elemen <AssignTo>
di HTTPModifier Anda
lebih lanjut. Setel createNew
ke true
dan tentukan nama pesan baru dalam isi
elemen, seperti yang ditampilkan 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 awal. Untuk menggunakan permintaan kustom, tambahkan kebijakan seperti yang menggunakan pesan permintaan dan secara eksplisit mereferensikan permintaan yang baru dibuat di konfigurasi untuk kebijakan tersebut. 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
address
pada pesan kustom ke nilai parameter kueriaddy
permintaan masuk. - Menetapkan kata kerja HTTP ke
GET
.
- Menetapkan parameter kueri
- Menetapkan
<IgnoreUnresolvedVariables>
kefalse
. Saat<IgnoreUnresolvedVariables>
adalahfalse
, jika salah satu variabel yang dirujuk dalam konfigurasi kebijakan tidak ada, Apigee akan memasuki status kesalahan dalam alur API.
Contoh 2
Berikut contoh lain yang menunjukkan cara membuat objek permintaan khusus 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 menyetel
<Verb>
pada permintaan baru.
Anda dapat mengakses berbagai properti pesan kustom dalam kebijakan HTTPModifier lain yang muncul kemudian dalam alur. Contoh berikut mendapatkan nilai {i>header<i} dari objek bernama respons kustom, dan menempatkannya ke 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 kesalahan dan pesan error yang ditampilkan dan variabel kesalahan yang disetel oleh Apigee saat kebijakan ini memicu error. Informasi ini penting untuk diketahui apakah Anda mengembangkan aturan kesalahan untuk menangani kesalahan. Untuk mempelajari lebih lanjut, lihat Yang perlu Anda ketahui tentang error kebijakan dan Menangani kesalahan.
Error runtime
Error ini dapat terjadi saat kebijakan dieksekusi.
Kode kesalahan | Status HTTP | Penyebab | Perbaikan |
---|---|---|---|
entities.UnresolvedVariable |
500 |
Variabel Template Pesan dalam Tidak ditentukan atau di luar cakupan. | |
steps.httpmodifier.InvalidStatusCode |
500 |
Nilai kode status yang diselesaikan tidak valid. Lihat string fault untuk mengetahui informasi selengkapnya. | build |
Error saat deployment
Error ini dapat terjadi saat Anda men-deploy proxy yang berisi kebijakan ini.
Nama error | Penyebab | Perbaikan |
---|---|---|
InvalidIndex |
Jika indeks yang ditentukan dalam elemen <Remove> kebijakan HTTPModifier adalah 0 atau angka negatif, deployment Proxy API akan gagal. |
build |
Variabel kesalahan
Variabel ini ditetapkan saat kebijakan ini memicu error saat runtime. Untuk 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 kesalahan. | 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 kesalahan
<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.