شما در حال مشاهده مستندات Apigee Edge هستید.
به مستندات Apigee X مراجعه کنید . اطلاعات
نمای کلی
سیاست MonetizationLimitsCheck به شما امکان میدهد محدودیتهای کسب درآمد را روی فراخوانیهای API خود که توسط توسعهدهنده برنامه انجام میشود، اعمال کنید.
برخی از مواردی که این سیاست فعال میشود عبارتند از:
- اگر توسعهدهندهی اپلیکیشنی که به API پولی دسترسی دارد، اشتراک محصول 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> در همه خط مشی ها مشترک است.
| مقدار پیش فرض | 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 طرح نرخ مربوطه را برای محصول دریافت میکند و بررسی محدودیتهای کسب درآمد را انجام میدهد.
| مقدار پیشفرض | ناموجود |
| الزامی است؟ | اختیاری |
| نوع | نوع پیچیده |
| عنصر والد | <MonetizationLimitsCheck> |
| عناصر فرزند | <Product> |
عنصر <Variables> از سینتکس زیر استفاده میکند:
نحو
<Variables>
<Product>VARIABLE_NAME</Product>
</Variables>مثال
مثال زیر نام محصول API را از متغیر جریان سفارشی myproductvar.name موجود در جریان پروکسی API شما دریافت میکند.
<Variables> <Product>myproductvar.name</Product> </Variables>
شما میتوانید متغیرهای جریان سفارشی را با استفاده از سیاستهایی مانند AssignMessage یا جاوا اسکریپت تنظیم کنید.
<Product>
متغیری را مشخص میکند که نام محصول API را دارد.
| مقدار پیشفرض | ناموجود |
| الزامی است؟ | اختیاری |
| نوع | رشته |
| عنصر والد | <Variables> |
| عناصر فرزند | هیچکدام |
عنصر <Product> از سینتکس زیر استفاده میکند:
نحو
<Product>VARIABLE_NAME</Product>
مثال
مثال زیر نام محصول API را از متغیر جریان سفارشی myproductvar.name موجود در جریان پروکسی API شما دریافت میکند.
<Product>myproductvar.name</Product>
شما میتوانید متغیرهای جریان سفارشی را با استفاده از سیاستهایی مانند AssignMessage یا جاوا اسکریپت تنظیم کنید.
<FaultResponse>
پیام پاسخی را که در صورت بروز خطا به کلاینت درخواستکننده برگردانده میشود، تعریف میکند. میتوانید پیامهای پاسخ را بر اساس نیازهای خود سفارشی کنید. برای اطلاعات بیشتر در مورد عنصر و تمام عناصر فرزند آن، به FaultResponse مراجعه کنید.
متغیرهای جریان
اگر ویژگی ContinueOnError عنصر <MonetizationLimitsCheck> را روی true تنظیم کنید، هیچ خطایی رخ نمیدهد. در این حالت، متغیرهای جریان، mint.limitsViolated ، mint.isDeveloperSuspended و mint.limitsPolicyError به طور خودکار تنظیم میشوند. در صورت لزوم، میتوان از این متغیرها برای انجام مدیریت بیشتر خطاها استفاده کرد.