Anda melihat dokumentasi Apigee Edge.
Buka
dokumentasi Apigee X. info
Ringkasan
Kebijakan MonetizationLimitsCheck memungkinkan Anda menerapkan batas monetisasi pada panggilan API yang dilakukan oleh developer aplikasi.
Beberapa kasus saat kebijakan dipicu adalah:
- Jika developer aplikasi yang mengakses API yang dimonetisasi belum membeli langganan ke produk API terkait
- Akun developer memiliki saldo yang tidak mencukupi.
- Developer telah melampaui batas volume transaksi.
Untuk mengetahui informasi tentang cara melampirkan kebijakan ke proxy API, lihat Menerapkan batas monetisasi pada proxy API.
<MonetizationLimitsCheck> elemen
Menentukan kebijakan MonetizationLimitsCheck.
| Nilai Default | T/A |
| Wajib? | Wajib |
| Jenis | Jenis kompleks |
| Elemen Induk | T/A |
| Elemen Turunan |
<DisplayName><FaultResponse><IgnoreUnresolvedVariables><Variables> |
Tabel berikut memberikan deskripsi tingkat tinggi tentang elemen turunan <MonetizationLimitsCheck>:
| Elemen Turunan | Wajib? | Deskripsi |
|---|---|---|
<DisplayName> |
Opsional | Nama kustom untuk kebijakan. |
<FaultResponse> |
Opsional | Menentukan pesan respons yang ditampilkan ke klien yang meminta saat terjadi error. |
<IgnoreUnresolvedVariables> |
Opsional | Menentukan apakah pemrosesan berhenti saat variabel yang tidak dapat diselesaikan ditemukan. |
<Variables> |
Opsional | Menentukan variabel alur yang akan diperiksa untuk batas monetisasi. |
Elemen <MonetizationLimitsCheck> menggunakan sintaksis berikut:
Sintaksis
<?xml version="1.0" encoding="UTF-8"?> <MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="POLICY_NAME"> <DisplayName>DISPLAY_NAME</DisplayName> <IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables> <Variables> <Product>VARIABLE_NAME</Product> </Variables> <FaultResponse> <Set> <Payload contentType="text/xml"> <error> <messages> <message>MESSAGE_TEXT</message> <message>MESSAGE_TEXT</message> </messages> </error> </Payload> <StatusCode>HTTP_STATUS</StatusCode> <ReasonPhrase>REASON_TEXT</ReasonPhrase> </Set> </FaultResponse> </MonetizationLimitsCheck>
Contoh
Contoh berikut menunjukkan definisi kebijakan MonetizationLimitsCheck:
<?xml version="1.0" encoding="UTF-8"?> <MonetizationLimitsCheck async="false" continueOnError="false" enabled="true" name="Monetization-Limits-Check"> <DisplayName>Monetization Limits Check</DisplayName> <IgnoreUnresolvedVariables>true</IgnoreUnresolvedVariables> <Variables> <Product>myproductvar.name</Product> </Variables> <FaultResponse> <Set> <Payload contentType="text/xml"> <error> <messages> <message>Developer has reached usage quota</message> <message>Is Developer Suspended - {monetizationLimits.isDeveloperSuspended} </message> </messages> </error> </Payload> <StatusCode>403</StatusCode> <ReasonPhrase>Forbidden</ReasonPhrase> </Set> </FaultResponse> </MonetizationLimitsCheck>
Elemen ini memiliki atribut berikut yang sama 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. Hal ini wajar untuk sebagian besar kebijakan. Tetapkan ke "true" agar eksekusi flow berlanjut meskipun kebijakan gagal. |
enabled |
benar | Opsional | Tetapkan ke "true" untuk menerapkan kebijakan. Tetapkan ke "false" untuk "menonaktifkan" kebijakan. Kebijakan ini tidak akan diterapkan meskipun tetap dilampirkan ke flow. |
async |
false | Tidak digunakan lagi | Atribut ini tidak digunakan lagi. |
Referensi elemen turunan
Bagian ini menjelaskan elemen turunan<MonetizationLimitsCheck>.
<DisplayName>
Gunakan selain atribut name untuk memberi label pada kebijakan di
editor proxy UI pengelolaan dengan nama yang berbeda dan terdengar lebih alami.
Elemen <DisplayName> umum untuk semua kebijakan.
| Nilai Default | t/a |
| Wajib? | Opsional. Jika Anda tidak menyertakan <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 kebijakan harus berhenti saat Apigee menemukan variabel yang tidak dapat diselesaikan.
| Nilai Default | Benar |
| Wajib? | Opsional |
| Jenis | Boolean |
| Elemen Induk |
<MonetizationLimitsCheck> |
| Elemen Turunan | Tidak ada |
Untuk mengabaikan variabel yang tidak dapat diselesaikan dan melanjutkan pemrosesan, tetapkan nilai ke true;
jika tidak, tetapkan ke false. Nilai defaultnya adalah true.
Menetapkan <IgnoreUnresolvedVariables> ke true berbeda dengan menetapkan continueOnError elemen <MonetizationLimitsCheck> ke true. Jika Anda menetapkan continueOnError ke true, Apigee akan mengabaikan tidak
hanya error variabel, tetapi juga semua error.
Elemen <IgnoreUnresolvedVariables> menggunakan sintaksis berikut:
Sintaksis
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
Contoh
Contoh berikut menetapkan <IgnoreUnresolvedVariables> ke false:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
Menentukan variabel alur tempat Anda ingin mengambil nama entity atau resource selama eksekusi kebijakan.
Anda hanya dapat menentukan elemen <Product> dalam elemen <Variables>. Apigee mendapatkan nama produk API dari flow variable yang ditentukan dalam elemen <Product>. Jika Anda
tidak menentukan elemen <Variables>, Apigee secara default akan mendapatkan nama produk API dari
variabel konteks apiproduct.name. Dengan menggunakan nama produk API, Apigee akan mendapatkan paket tarif yang sesuai untuk produk tersebut dan melakukan pemeriksaan batas monetisasi.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | Jenis kompleks |
| Elemen Induk |
<MonetizationLimitsCheck> |
| Elemen Turunan |
<Product> |
Elemen <Variables> menggunakan sintaksis berikut:
Sintaksis
<Variables>
<Product>VARIABLE_NAME</Product>
</Variables>Contoh
Contoh berikut mendapatkan nama produk API dari variabel alur kustom myproductvar.name yang ada dalam alur proxy API Anda.
<Variables> <Product>myproductvar.name</Product> </Variables>
Anda dapat menetapkan variabel alur kustom menggunakan kebijakan seperti AssignMessage atau JavaScript.
<Product>
Menentukan variabel yang memiliki nama produk API.
| Nilai Default | T/A |
| Wajib? | Opsional |
| Jenis | String |
| Elemen Induk |
<Variables> |
| Elemen Turunan | Tidak ada |
Elemen <Product> menggunakan sintaksis berikut:
Sintaksis
<Product>VARIABLE_NAME</Product>
Contoh
Contoh berikut mendapatkan nama produk API dari flow variable kustom myproductvar.name yang ada dalam alur proxy API Anda.
<Product>myproductvar.name</Product>
Anda dapat menetapkan variabel alur kustom menggunakan kebijakan seperti AssignMessage atau JavaScript.
<FaultResponse>
Menentukan pesan respons yang ditampilkan ke klien yang meminta jika terjadi error. Anda dapat menyesuaikan pesan respons berdasarkan persyaratan. Untuk mengetahui informasi selengkapnya tentang elemen dan semua elemen turunannya, lihat FaultResponse.
Variabel alur
Jika Anda menetapkan atribut
ContinueOnError elemen <MonetizationLimitsCheck> ke benar (true), tidak ada error yang ditampilkan. Dalam hal ini, variabel alur, mint.limitsViolated, mint.isDeveloperSuspended, dan
mint.limitsPolicyError akan ditetapkan secara otomatis. Variabel ini dapat digunakan untuk
melakukan penanganan pengecualian lebih lanjut jika diperlukan.