Kebijakan MonetizationLimitsCheck

Anda sedang melihat dokumentasi Apigee Edge.
Buka Dokumentasi Apigee X.
info

Ringkasan

Kebijakan MonetizationLimitsCheck memungkinkan Anda menerapkan batas monetisasi pada panggilan API yang dilakukan oleh pengembang aplikasi.

Beberapa kasus yang terjadi saat kebijakan dipicu adalah:

  • Jika developer aplikasi yang mengakses API yang dimonetisasi belum membeli langganan untuk produk API terkait
  • Akun developer tidak memiliki saldo yang cukup.
  • Developer telah melampaui batas volume transaksi.

Untuk informasi tentang cara melampirkan kebijakan ke proxy API Anda, lihat Terapkan batas monetisasi pada proxy API.

Elemen <MonetizationLimitsCheck>

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 untuk 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 kesalahan dimunculkan.
<IgnoreUnresolvedVariables> Opsional Menentukan apakah pemrosesan berhenti saat variabel yang belum terselesaikan ditemukan.
<Variables> Opsional Menentukan variabel alur untuk memeriksa 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>

This element has the following attributes that are common to all policies:

Attribute Default Required? Description
name N/A Required

The internal name of the policy. The value of the name attribute can contain letters, numbers, spaces, hyphens, underscores, and periods. This value cannot exceed 255 characters.

Optionally, use the <DisplayName> element to label the policy in the management UI proxy editor with a different, natural-language name.

continueOnError false Optional Set to "false" to return an error when a policy fails. This is expected behavior for most policies. Set to "true" to have flow execution continue even after a policy fails.
enabled true Optional Set to "true" to enforce the policy. Set to "false" to "turn off" the policy. The policy will not be enforced even if it remains attached to a flow.
async   false Deprecated This attribute is deprecated.

Referensi elemen turunan

Bagian ini menjelaskan elemen turunan dari <MonetizationLimitsCheck>.

<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:

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 dihentikan saat Apigee menemukan variabel yang belum terselesaikan.

Nilai Default Benar
Wajib? Opsional
Jenis Boolean
Elemen Induk <MonetizationLimitsCheck>
Elemen Turunan Tidak ada

Untuk mengabaikan variabel yang belum terselesaikan dan melanjutkan pemrosesan, tetapkan nilai ke true; jika tidak, false. Nilai defaultnya adalah true.

Menyetel <IgnoreUnresolvedVariables> ke true berbeda dengan menyetel elemen <MonetizationLimitsCheck> continueOnError hingga true. Jika Anda menetapkan continueOnError ke true, Apigee tidak akan mengabaikannya hanya variabel {i>error<i} tetapi semua kesalahannya.

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 entitas atau resource selama eksekusi kebijakan.

Anda hanya dapat menentukan elemen <Product> dalam elemen <Variables>. Apigee mendapatkan nama produk API dari variabel alur yang ditentukan dalam elemen <Product>. Jika Anda jangan tentukan elemen <Variables>, Apigee secara default mendapatkan nama produk API dari Variabel konteks apiproduct.name. Dengan menggunakan nama produk API, Apigee mendapatkan paket tarif yang sesuai untuk produk 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 ada di 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 variabel alur kustom myproductvar.name ada di 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 kesalahan. Anda dapat menyesuaikan respons pesan sesuai kebutuhan Anda. Untuk informasi selengkapnya tentang dan semua elemen turunannya, lihat FaultResponse.

Variabel flow

Jika Anda mengatur <MonetizationLimitsCheck> atribut atribut ContinueOnError ke benar (true), tidak ada kesalahan yang dimunculkan. Dalam hal ini, variabel alur, mint.limitsViolated, mint.isDeveloperSuspended, dan mint.limitsPolicyError akan disetel secara otomatis. Variabel-variabel ini dapat digunakan untuk melakukan penanganan pengecualian lebih lanjut jika diperlukan.