درحال مشاهده اسناد Apigee Edge هستید.
به
اسناد Apigee X بروید. اطلاعات
نمای کلی
خطمشی MonetizationLimitsCheck به شما امکان میدهد محدودیتهای درآمدزایی را بر روی تماسهای API که توسط توسعهدهنده برنامه انجام میشود، اعمال کنید.
برخیاز مواردی که خطمشی فعال میشود عبارتاند از:
- اگر توسعهدهنده برنامهای که به «میانای برنامهسازی کاربردی» درآمدزا دسترسی دارد اشتراکی برای محصول «میانای برنامهسازی کاربردی» مرتبط خریداری نکرده باشد
- حساب توسعهدهنده موجودی کافی ندارد.
- توسعهدهنده از حد مجاز حجم تراکنش فراتر رفته است.
برای کسب اطلاعات درباره نحوه پیوست کردن خطمشی به پراکسی API، به اعمال محدودیتهای درآمدزایی روی پراکسیهای API مراجعه کنید.
<MonetizationLimitsCheck> عنصر
خطمشی MonetizationLimitsCheck را مشخص میکند.
| مقدار پیشفرض | موجود نیست |
| الزامی است؟ | الزامی |
| تایپ کردن | نوع پیچیده |
| عنصر والد | موجود نیست |
| عناصر فرزند |
<DisplayName><FaultResponse><IgnoreUnresolvedVariables><Variables> |
جدول زیر شرحی کلی از عناصر فرزند <MonetizationLimitsCheck> ارائه میدهد:
| عنصر فرزند | الزامی است؟ | شرح |
|---|---|---|
<DisplayName> |
اختیاری | نام سفارشی برای خطمشی. |
<FaultResponse> |
اختیاری | پیام پاسخی را که هنگام بروز خطا به مشتری درخواستکننده برگردانده میشود مشخص میکند. |
<IgnoreUnresolvedVariables> |
اختیاری | تعیین میکند که آیا پردازش هنگام مواجهه با متغیر حلنشده متوقف شود یا نه. |
<Variables> |
اختیاری | متغیرهای جاری را برای بررسی محدودیتهای درآمدزایی مشخص میکند. |
عنصر <MonetizationLimitsCheck> از نحو زیر استفاده میکند:
نحو
<?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>
مثال
مثال زیر تعریف خطمشی 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>
این عنصر دارای ویژگی های زیر است که در همه سیاست ها مشترک است:
| صفت | پیش فرض | ضروری؟ | شرح |
|---|---|---|---|
name | N/A | ضروری | نام داخلی سیاست. مقدار مشخصه در صورت تمایل، از عنصر |
continueOnError | نادرست | اختیاری | برای بازگرداندن خطا در صورت شکست خط مشی، روی "false" تنظیم کنید. این رفتار مورد انتظار برای اکثر سیاست ها است. روی "true" تنظیم کنید تا اجرای جریان حتی پس از شکست خط مشی ادامه یابد. |
enabled | درست است، واقعی | اختیاری | برای اجرای این خطمشی روی «درست» تنظیم کنید. برای «خاموش کردن» خط مشی، روی «نادرست» تنظیم کنید. این سیاست حتی اگر به یک جریان وابسته باشد اجرا نخواهد شد. |
async | نادرست | منسوخ | این ویژگی منسوخ شده است. |
مرجع عنصر فرزند
این بخش عناصر فرزند<MonetizationLimitsCheck> را شرح میدهد.
<DisplayName>
علاوهبر مشخصه name، از این مشخصه برای برچسبگذاری خطمشی در ویرایشگر پراکسی میانای کاربر مدیریت با نامی متفاوت و طبیعیتر استفاده کنید.
عنصر <DisplayName> برای همه خطمشیها مشترک است.
| مقدار پیشفرض | نامربوط |
| الزامی است؟ | اختیاری. اگر <DisplayName> را حذف کنید، مقدار مشخصه name خطمشی استفاده میشود |
| تایپ کردن | رشته |
| عنصر ولی | <PolicyElement> |
| عناصر فرزند | هیچکدام |
عنصر <DisplayName> از نحو زیر استفاده میکند:
نحو
<PolicyElement> <DisplayName>policy_display_name</DisplayName> ... </PolicyElement>
مثال
<PolicyElement> <DisplayName>My Validation Policy</DisplayName> </PolicyElement>
عنصر <DisplayName> هیچ مشخصه یا عنصر فرزندی ندارد.
<IgnoreUnresolvedVariables>
تعیین میکند که آیا پردازش خطمشی باید زمانی که Apigee با متغیر حلنشدهای مواجه میشود متوقف شود یا نه.
| مقدار پیشفرض | True |
| الزامی است؟ | اختیاری |
| تایپ کردن | بولی |
| عنصر والد |
<MonetizationLimitsCheck> |
| عناصر فرزند | خالی |
برای نادیده گرفتن متغیرهای حلنشده و ادامه پردازش، مقدار را روی true تنظیم کنید؛
درغیراینصورت false. مقدار پیشفرض true است.
تنظیم <IgnoreUnresolvedVariables> روی true با تنظیم عنصر <MonetizationLimitsCheck>
continueOnError روی true متفاوت است. اگر continueOnError را روی true تنظیم کنید، Apigee نه تنها خطاهای متغیر بلکه همه خطاها را نادیده میگیرد.
عنصر <IgnoreUnresolvedVariables> از نحو زیر استفاده میکند:
نحو
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
مثال
مثال زیر <IgnoreUnresolvedVariables> را روی false تنظیم میکند:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
متغیرهای جریانی را که میخواهید نامهای نهاد یا منبع را از آنها درطول اجرای خطمشی واکشی کنید مشخص میکند.
فقط عنصر <Product> را میتوانید در عنصر <Variables> مشخص کنید. Apigee نام محصول API را از متغیر جاری مشخصشده در عنصر <Product> دریافت میکند. اگر عنصر <Variables> را مشخص نکنید، Apigee بهطور پیشفرض نام محصول API را از متغیر زمینهای apiproduct.name دریافت میکند. بااستفاده از نام محصول API، Apigee طرح نرخ مربوط به محصول را دریافت میکند و بررسی محدودیتهای درآمدزایی را انجام میدهد.
| مقدار پیشفرض | موجود نیست |
| الزامی است؟ | اختیاری |
| تایپ کردن | نوع پیچیده |
| عنصر والد |
<MonetizationLimitsCheck> |
| عناصر فرزند |
<Product> |
عنصر <Variables> از نحو زیر استفاده میکند:
نحو
<Variables>
<Product>VARIABLE_NAME</Product>
</Variables>مثال
مثال زیر نام محصول API را از متغیر جریان سفارشی myproductvar.name
موجود در جریان پراکسی API شما دریافت میکند.
<Variables> <Product>myproductvar.name</Product> </Variables>
میتوانید متغیرهای جاریسازی سفارشی را بااستفاده از خطمشیهایی مثل AssignMessage یا JavaScript تنظیم کنید.
<Product>
متغیری را که نام محصول API دارد مشخص میکند.
| مقدار پیشفرض | موجود نیست |
| الزامی است؟ | اختیاری |
| تایپ کردن | رشته |
| عنصر والد |
<Variables> |
| عناصر فرزند | خالی |
عنصر <Product> از نحو زیر استفاده میکند:
نحو
<Product>VARIABLE_NAME</Product>
مثال
مثال زیر نام محصول API را از متغیر جریان سفارشی myproductvar.name
موجود در جریان پراکسی API شما دریافت میکند.
<Product>myproductvar.name</Product>
میتوانید متغیرهای جاریسازی سفارشی را بااستفاده از خطمشیهایی مثل AssignMessage یا JavaScript تنظیم کنید.
<FaultResponse>
پیام پاسخی را که درصورت بروز خطا به مشتری درخواستکننده برگردانده میشود تعریف میکند. میتوانید پیامهای پاسخ را براساس الزامات خود سفارشیسازی کنید. برای اطلاعات بیشتر درباره عنصر و همه عناصر فرزند آن، FaultResponse را ببینید.
متغیرهای جریان
اگر عنصر <MonetizationLimitsCheck> را
ContinueOnError روی درست تنظیم کنید، هیچ خطایی ایجاد نمیشود. در این حالت، متغیرهای جریان، mint.limitsViolated، mint.isDeveloperSuspended، و mint.limitsPolicyError بهطور خودکار تنظیم میشوند. از این متغیرها میتوان برای
انجام مدیریت استثنا بیشتر درصورت نیاز استفاده کرد.