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