أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى
مستندات Apigee X. info
نظرة عامة
تتيح لك سياسة MonetizationLimitsCheck فرض حدود لتحقيق الربح على طلبات البيانات من واجهة برمجة التطبيقات التي يقدّمها مطوّر التطبيق.
في ما يلي بعض الحالات التي يتم فيها تطبيق السياسة:
- إذا لم يشترِ مطوّر تطبيق يصل إلى واجهة برمجة التطبيقات التي تتيح تحقيق الربح اشتراكًا في منتج واجهة برمجة التطبيقات المرتبط
- رصيد حساب المطوِّر غير كافٍ.
- تجاوز المطوّر الحد الأقصى لحجم المعاملات.
للحصول على معلومات حول كيفية إرفاق السياسة بخادم وكيل لواجهة برمجة التطبيقات، يُرجى الاطّلاع على فرض حدود تحقيق الربح على خوادم وكيل لواجهة برمجة التطبيقات.
العنصر <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 |
لا ينطبق | مطلوب |
الاسم الداخلي للسياسة. يمكن أن تحتوي قيمة السمة اختياريًا، يمكنك استخدام العنصر |
continueOnError |
false | إجراء اختياري | يمكنك ضبطها على "خطأ" لعرض رسالة خطأ عند تعذّر تنفيذ إحدى السياسات. ويُعدّ هذا سلوكًا متوقعًا في معظم السياسات. يمكنك ضبط القيمة على "صحيح" للاستمرار في تنفيذ العملية حتى بعد تعذُّر تنفيذ سياسة. |
enabled |
صحيح | إجراء اختياري | اضبط القيمة على "true" لفرض السياسة. اضبط هذه القيمة على "false" على "إيقاف" السياسة. لن يتم فرض السياسة حتى إذا ظلت مرتبطة بتدفق. |
async |
false | منهي العمل به | تم إيقاف هذه السمة نهائيًا. |
مرجع العنصر الفرعي
يوضّح هذا القسم العناصر الفرعية من<MonetizationLimitsCheck>.
<DisplayName>
استخدِم هذه السمة بالإضافة إلى السمة name لتصنيف السياسة في أداة تعديل وكيل واجهة مستخدم الإدارة باستخدام اسم مختلف وأكثر طبيعية.
العنصر <DisplayName> مشترك بين جميع السياسات.
| القيمة التلقائية | timing fixed in amara |
| هل هو مطلوب؟ | اختياريّ. في حال حذف <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 عن ضبط continueOnError في العنصر <MonetizationLimitsCheck> على true. إذا ضبطت continueOnError على true، ستتجاهل Apigee ليس فقط أخطاء المتغيرات، بل جميع الأخطاء.
يستخدم العنصر <IgnoreUnresolvedVariables> البنية التالية:
البنية
<IgnoreUnresolvedVariables>[true|false]</IgnoreUnresolvedVariables>
مثال
يضبط المثال التالي قيمة <IgnoreUnresolvedVariables> على false:
<IgnoreUnresolvedVariables>false</IgnoreUnresolvedVariables>
<Variables>
تحدّد هذه السمة متغيرات التدفق التي تريد استرداد أسماء الكيانات أو الموارد منها أثناء تنفيذ السياسة.
يمكنك تحديد عنصر <Product> فقط ضمن عنصر <Variables>. تحصل Apigee على اسم منتج واجهة برمجة التطبيقات من متغيّر التدفق المحدّد في العنصر <Product>. في حال عدم تحديد العنصر <Variables>، تحصل Apigee تلقائيًا على اسم منتج واجهة برمجة التطبيقات من متغيّر السياق apiproduct.name. باستخدام اسم منتج واجهة برمجة التطبيقات، تحصل Apigee على خطة الأسعار المقابلة للمنتج وتجري عملية التحقّق من حدود تحقيق الربح.
| القيمة التلقائية | لا ينطبق |
| هل هو مطلوب؟ | اختياري |
| النوع | نوع معقّد |
| العنصر الأصل |
<MonetizationLimitsCheck> |
| العناصر الفرعية |
<Product> |
يستخدم العنصر <Variables> البنية التالية:
البنية
<Variables>
<Product>VARIABLE_NAME</Product>
</Variables>مثال
يحصل المثال التالي على اسم منتج واجهة برمجة التطبيقات من myproductvar.nameمتغير التدفق المخصّص
الموجود في تدفق خادم وكيل واجهة برمجة التطبيقات.
<Variables> <Product>myproductvar.name</Product> </Variables>
يمكنك ضبط متغيرات التدفق المخصّصة باستخدام سياسات مثل AssignMessage أو JavaScript.
<Product>
تحدّد هذه السمة المتغيّر الذي يتضمّن اسم منتج واجهة برمجة التطبيقات.
| القيمة التلقائية | لا ينطبق |
| هل هو مطلوب؟ | اختياري |
| النوع | سلسلة |
| العنصر الأصل |
<Variables> |
| العناصر الفرعية | بلا |
يستخدم العنصر <Product> البنية التالية:
البنية
<Product>VARIABLE_NAME</Product>
مثال
يحصل المثال التالي على اسم منتج واجهة برمجة التطبيقات من myproductvar.nameمتغير التدفق المخصّص
الموجود في تدفق خادم وكيل واجهة برمجة التطبيقات.
<Product>myproductvar.name</Product>
يمكنك ضبط متغيّرات التدفق المخصّصة باستخدام سياسات مثل AssignMessage أو JavaScript.
<FaultResponse>
تحدّد هذه السمة رسالة الرد التي يتم إرسالها إلى العميل الذي أرسل الطلب في حال حدوث خطأ. يمكنك تخصيص رسائل الردود استنادًا إلى متطلباتك. لمزيد من المعلومات حول عنصر وجميع عناصره الثانوية، يُرجى الاطّلاع على FaultResponse.
متغيّرات سير العمل
إذا ضبطت السمة ContinueOnError للعنصر <MonetizationLimitsCheck> على القيمة true، لن يتم عرض أي خطأ. في هذه الحالة، يتم ضبط متغيرات المسار mint.limitsViolated وmint.isDeveloperSuspended وmint.limitsPolicyError تلقائيًا. يمكن استخدام هذه المتغيّرات لتنفيذ معالجة إضافية للأخطاء إذا لزم الأمر.