سياسة JavaScript

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

الموضوع

تتيح لك هذه السياسة إضافة رمز JavaScript مخصّص يتم تنفيذه ضمن سياق تدفق الخادم الوكيل لواجهة برمجة التطبيقات. في رمز JavaScript المخصّص، يمكنك استخدام الكائنات والطرق وخصائص نموذج عنصر JavaScript في Apigee Edge. يتيح لك نموذج الكائن الحصول على متغيّرات وإعدادها وإزالتها في سياق تدفق الخادم الوكيل. يمكنك أيضًا استخدام وظائف التشفير الأساسية التي يتم توفيرها مع نموذج الكائن.

لمحة عامة

هناك حالات متعددة لاستخدام سياسة JavaScript. على سبيل المثال، يمكنك الحصول على متغيّرات التدفق وإعدادها، وتنفيذ منطق مخصّص ومعالجة الأخطاء، واستخراج البيانات من الطلبات أو الاستجابات، وتعديل عنوان URL المستهدف للخلفية ديناميكيًا، وغير ذلك الكثير. وتتيح لك هذه السياسة تنفيذ سلوك مخصّص لا تنطبق عليه أي من سياسات Edge العادية الأخرى. في الواقع، يمكنك استخدام سياسة JavaScript لتحقيق العديد من السلوكيات نفسها التي تطبّقها سياسات أخرى، مثل AssignMessage واستخراج Variable.

إنّ تسجيل الدخول هو إحدى حالات الاستخدام التي لا ننصح بها لسياسة JavaScript. تكون سياسة تسجيل الرسائل أكثر ملاءمة لتسجيل الدخول إلى منصات تسجيل تابعة لجهات خارجية، مثل Splunk وSumo وLoggly. ويمكنك تحسين أداء الخادم الوكيل لواجهة برمجة التطبيقات من خلال تنفيذ سياسة تسجيل الرسائل في PostClientFlow التي يتم تنفيذها بعد إرسال الردّ إلى العميل.

وتتيح لك سياسة JavaScript تحديد ملف مصدر JavaScript لتنفيذه أو يمكنك تضمين رمز JavaScript مباشرةً في إعدادات السياسة باستخدام العنصر <Source>. وفي كلتا الحالتين، يتم تنفيذ رمز JavaScript عندما يتم تنفيذ الخطوة التي تم إرفاق السياسة بها. بالنسبة إلى خيار ملف المصدر، يتم تخزين رمز المصدر دائمًا في موقع عادي ضمن حزمة الخادم الوكيل: apiproxy/resources/jsc. أو يمكنك أيضًا تخزين رمز المصدر في ملف مورد على مستوى البيئة أو المؤسسة. للحصول على تعليمات، راجع ملفات الموارد. يمكنك أيضًا تحميل JavaScript من خلال محرِّر الخادم الوكيل لواجهة مستخدم Apigee.

يجب أن تحتوي ملفات مصدر JavaScript دائمًا على الامتداد .js.

راجِع البرامج المتوافقة والإصدارات المتوافقة لمعرفة إصدار JavaScript المتوافق حاليًا.

حملة فيديو

يمكنك مشاهدة فيديو قصير للتعرّف على كيفية إنشاء إضافة سياسة مخصّصة باستخدام سياسة JavaScript.

عيّنات

إعادة كتابة عنوان URL المستهدف

في ما يلي حالة استخدام شائعة: استخراج البيانات من نص الطلب وتخزينها في متغيّر تدفق واستخدام هذا المتغيّر في مكان آخر في مسار الخادم الوكيل. لِنفترض أنّك تمتلك تطبيقًا يُدخل فيه المستخدم اسمه في نموذج HTML ويرسله. عندما تريد أن يستخرج الخادم الوكيل لواجهة برمجة التطبيقات بيانات النموذج وأن يضيفها بشكل ديناميكي إلى عنوان URL المستخدَم لاستدعاء الخدمة الخلفية. كيف يمكنك تنفيذ ذلك في سياسة JavsScript؟

ملاحظة: إذا كنت تريد تجربة هذا المثال، لنفترض أنّك أنشأت خادمًا وكيلاً جديدًا في أداة تعديل الخادم الوكيل. عند إنشائه، ما عليك سوى منحه عنوان URL لخدمة الخلفية على النحو التالي: http://www.example.com. في هذا المثال، سنعيد كتابة عنوان URL للخلفية بشكل ديناميكي. في حال عدم معرفة كيفية إنشاء خادم وكيل جديد، يمكنك الرجوع إلى البرنامج التعليمي للبدء. .

  1. في واجهة مستخدم Edge، افتح الخادم الوكيل الذي أنشأته في محرِّر الخادم الوكيل.
  2. اختَر علامة التبويب التطوير.
  3. من القائمة "جديد"، اختَر نص برمجي جديد.
  4. في مربّع الحوار، اختَر JavaScript وأدخِل اسمًا للنص البرمجي، مثل js-example.
  5. الصق الرمز التالي في أداة تعديل الرموز واحفظ الخادم الوكيل. ويجب الانتباه إلى الكائن context. يتوفّر هذا الكائن لرمز JavaScript في أي مكان في مسار الخادم الوكيل. ويتم استخدامه للحصول على ثوابت خاصة بالتدفق، ولاستدعاء طرق الحصول/ضبط مفيدة، وللمزيد من العمليات. هذا الجزء من نموذج عنصر JavaScript على Edge. يُرجى العلم أيضًا أنّ متغيّر مسار target.url هو متغيّر مضمّن للقراءة/الكتابة يمكن الوصول إليه في مسار "الطلب المستهدَف". عند ضبط هذا المتغيّر باستخدام عنوان URL لواجهة برمجة التطبيقات، يُجري Edge اتصال الخلفية بعنوان URL هذا. لقد أعدنا في الأساس كتابة عنوان URL المستهدف الأصلي، وهو العنوان الذي حددته عند إنشاء الخادم الوكيل (على سبيل المثال: http://www.example.com).

    if (context.flow=="PROXY_REQ_FLOW") {
         var username = context.getVariable("request.formparam.user");
         context.setVariable("info.username", username);
    }
    
    
    if (context.flow=="TARGET_REQ_FLOW") {
         context.setVariable("request.verb", "GET");
         var name = context.getVariable("info.username");
         var url = "http://mocktarget.apigee.net/"
         context.setVariable("target.url", url + "?user=" + name);
    }
    
  6. من قائمة "سياسة جديدة"، اختَر JavaScript.
  7. أدخِل اسمًا للسياسة، مثل target-rewrite. اقبل الخيارات التلقائية واحفظ السياسة.
  8. في حال اختيار التدفق المسبق لنقطة نهاية الخادم الوكيل في المستكشف، سيظهر لك أنّ السياسة قد تمت إضافتها إلى ذلك المسار.
  9. في المستكشف، حدد رمز الاستهداف المسبق لنقطة النهاية المستهدفة.
  10. من المستكشف، اسحب سياسة JavaScript إلى جانب الطلب ضمن نقطة النهاية المستهدفة في محرِّر التدفق.
  11. حفظ.
  12. عليك طلب بيانات من واجهة برمجة التطبيقات على النحو التالي، واستبدال اسم المؤسسة واسم الخادم الوكيل الصحيحَين بالشكل المناسب:
curl -i -H 'Content-Type: application/x-www-form-urlencoded' -X POST -d 'user=Will' http://myorg-test.apigee.net/js-example

أخيرًا، سنتعرّف على تعريف XML لسياسة JavaScript المستخدمة في هذا المثال. يُرجى العِلم أنّه يتم استخدام العنصر <ResourceURL> لتحديد ملف مصدر JavaScript لتنفيذه. ويتم استخدام النمط نفسه مع أي ملف مصدر JavaScript: jsc://filename.js. إذا كان رمز JavaScript يتطلّب تضمينًا، يمكنك استخدام عنصر <IncludeURL> واحد أو أكثر لإجراء ذلك، كما هو موضّح لاحقًا في هذا المرجع.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="target-rewrite">
    <DisplayName>target-rewrite</DisplayName>
    <Properties/>
    <ResourceURL>jsc://js-example.js</ResourceURL>
</Javascript>

استرداد قيمة الموقع من JavaScript

يمكنك إضافة عنصر <Property> في الإعدادات، ثم استرداد قيمة العنصر باستخدام JavaScript في وقت التشغيل.

استخدِم السمة name للعنصر لتحديد الاسم الذي تريد استخدامه للوصول إلى السمة من رمز JavaScript. قيمة العنصر <Property> (القيمة بين علامتَي الفتح والإغلاق) هي القيمة الحرفية التي ستتلقاها JavaScript.

في JavaScript، يمكنك استرداد قيمة سمة السياسة من خلال الوصول إليها كسمة لكائن Properties على النحو التالي:

  • اضبط الموقع. في هذا المثال، تكون قيمة السمة هي اسم المتغيّر response.status.code.
    <Javascript async="false" continueOnError="false" enabled="true" timeLimit="200" name="JavascriptURLRewrite">
        <DisplayName>JavascriptURLRewrite</DisplayName>
        <Properties>
            <Property name="source">response.status.code</Property>
        </Properties>
        <ResourceURL>jsc://JavascriptURLRewrite.js</ResourceURL>
    </Javascript>
    
  • يمكنك استرداد الموقع الإلكتروني باستخدام JavaScript. هنا، تستخدم الدالة getVariable القيمة التي تم استردادها وهي اسم متغيّر، وذلك لاسترداد قيمة المتغيّر.
    var responseCode = properties.source; // Returns "response.status.code"
    var value = context.getVariable(responseCode); // Get the value of response.status.code
    context.setVariable("response.header.x-target-response-code", value);
    

معالجة الأخطاء

للحصول على أمثلة ومناقشة لأساليب معالجة الأخطاء التي يمكنك استخدامها في وسيلة شرح JavaScript، راجِع هذه المشاركة في منتدى Apigee. الاقتراحات المقدَّمة في منتدى Apigee هي للمعلومات فقط، ولا تمثّل بالضرورة أفضل الممارسات التي تقترحها Apigee.


مرجع العنصر

يصف مرجع العنصر عناصر وسمات سياسة JavaScript.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Javascript async="false" 
        continueOnError="false" enabled="true" timeLimit="200" 
        name="JavaScript-1">
    <DisplayName>JavaScript 1</DisplayName>
    <Properties>
        <Property name="propName">propertyValue</Property>
    </Properties>
    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
    </SSLInfo>
    <IncludeURL>jsc://a-javascript-library-file</IncludeURL>
    <ResourceURL>jsc://my-javascript-source-file</ResourceURL>
    <Source>insert_js_code_here</Source>

</Javascript>

<Javascript> السمات

<Javascript name="Javascript-1" enabled="true" continueOnError="false" async="false" timeLimit="200">

السمات التالية خاصة بهذه السياسة.

السمة الوصف تلقائي التواجد في المنزل
timeLimit

وتحدد هذه السياسة الحد الأقصى للوقت (بالمللي ثانية) الذي يُسمح فيه بتنفيذ النص البرمجي. على سبيل المثال، إذا تم تجاوز الحدّ الأقصى المسموح به 200 ملي ثانية، تعرض السياسة هذا الخطأ: Javascript.policy_name failed with error: Javascript runtime exceeded limit of 200ms.

ملاحظة: في الحسابات التجريبية المجانية، يقتصر وقت التنفيذ على 200 ملي ثانية.

لا ينطبق مطلوبة

يوضِّح الجدول التالي السمات الشائعة لجميع العناصر الرئيسية للسياسة:

السمة الوصف تلقائي التواجد في المنزل
name

الاسم الداخلي للسياسة وقد تحتوي قيمة السمة name على أحرف وأرقام ومسافات وواصلات وشرطات سفلية ونقاط. لا يمكن أن تتجاوز هذه القيمة 255 حرفًا.

ويمكنك اختياريًا استخدام العنصر <DisplayName> لتصنيف السياسة في محرِّر الخادم الوكيل لواجهة المستخدم الإدارية باستخدام اسم مختلف للغة طبيعية.

لا ينطبق مطلوبة
continueOnError

اضبط القيمة على false لعرض رسالة خطأ عند تعذُّر تنفيذ السياسة. وهو سلوك متوقّع لمعظم السياسات.

اضبط القيمة على true لمواصلة تنفيذ التدفق حتى بعد تعذُّر تنفيذ السياسة.

false إجراء اختياري
enabled

اضبط القيمة على true لفرض السياسة.

اضبط القيمة على false من أجل إيقاف السياسة. ولن يتم فرض السياسة حتى إذا ظلت مرتبطة بمسار.

صحيح إجراء اختياري
async

تم إيقاف هذه السمة نهائيًا.

false منهي العمل به

العنصر <DisplayName>

استخدِم هذه السمة بالإضافة إلى السمة name لتصنيف السياسة في محرِّر الخادم الوكيل لواجهة المستخدم الإدارية باستخدام اسم مختلف بلغة طبيعية.

<DisplayName>Policy Display Name</DisplayName>
تلقائي

لا ينطبق

إذا لم تستخدم هذا العنصر، سيتم استخدام قيمة السمة name الخاصة بالسياسة.

التواجد في المنزل إجراء اختياري
Type سلسلة

عنصر <InsertURL>

تحدّد هذه العلامة ملف مكتبة JavaScript لتحميله كتبعية لملف JavaScript الرئيسي المحدّد مع العنصر <ResourceURL> أو <Source>. سيتم تقييم النصوص البرمجية بالترتيب الذي تم إدراجها به في السياسة. ويمكن أن يستخدم الرمز العناصر والطرق وخصائص نموذج عنصر JavaScript.

ضمِّن أكثر من مورد تبعية واحد لـ JavaScript مع عناصر <IncludeURL> الإضافية.

<IncludeURL>jsc://my-javascript-dependency.js</IncludeURL>
الخيار التلقائي: لا ينطبق
الحضور: إجراء اختياري
النوع: سلسلة

مثال

راجِع المثال الأساسي في القسم عيّنات.

عنصر <الخاصية>

تحدِّد هذه السياسة خاصية يمكنك الوصول إليها باستخدام رمز JavaScript في وقت التشغيل.

<Properties>
    <Property name="propName">propertyValue</Property>
</Properties>
الخيار التلقائي: لا ينطبق
الحضور: إجراء اختياري
النوع: سلسلة

السمات

السمة الوصف تلقائي التواجد في المنزل
اسم

تُحدِّد اسم الموقع.

لا ينطبق مطلوبة.

مثال

راجِع المثال في القسم عيّنات.

عنصر <ResourceURL>

تحدّد هذه العلامة ملف JavaScript الرئيسي الذي سيتم تنفيذه في مسار واجهة برمجة التطبيقات. يمكنك تخزين هذا الملف في نطاق الخادم الوكيل لواجهة برمجة التطبيقات (ضمن /apiproxy/resources/jsc في حزمة الخادم الوكيل لواجهة برمجة التطبيقات أو في قسم "النصوص البرمجية" ضمن مساحة "مستكشف الخادم الوكيل لواجهة برمجة التطبيقات") أو في نطاقات المؤسسة أو البيئة لإعادة استخدامه في عدة خوادم وكيل لواجهة برمجة التطبيقات، كما هو موضّح في ملفات الموارد. ويمكن أن يستخدم الرمز العناصر والطرق وخصائص نموذج عنصر JavaScript.

<ResourceURL>jsc://my-javascript.js</ResourceURL>
الخيار التلقائي: لا ينطبق
الحضور: يجب استخدام إما <ResourceURL> أو <Source>. إذا كان كل من <ResourceURL> و<Source> موجودَين، يتم تجاهل <ResourceURL>.
النوع: سلسلة

مثال

راجِع المثال الأساسي في القسم عيّنات.

عنصر <المصدر>

تسمح لك هذه السياسة بإدراج JavaScript مباشرةً في إعدادات XML للسياسة. يتم تنفيذ رمز JavaScript المُدرَج عندما يتم تنفيذ السياسة في مسار واجهة برمجة التطبيقات.

الخيار التلقائي: لا ينطبق
الحضور: يجب استخدام إما <ResourceURL> أو <Source>. إذا كان كل من <ResourceURL> و<Source> موجودَين، يتم تجاهل <ResourceURL>.
النوع: سلسلة

مثال

<Javascript name='JS-ParseJsonHeaderFullString' timeLimit='200' >
  <Properties>
    <Property name='inboundHeaderName'>specialheader</Property>
    <Property name='outboundVariableName'>json_stringified</Property>
  </Properties>
  <Source>
var varname = 'request.header.' + properties.inboundHeaderName + '.values.string';
var h = context.getVariable(varname);
if (h) {
  h = JSON.parse(h);
  h.augmented = (new Date()).valueOf();
  var v = JSON.stringify(h, null, 2) + '\n';
  // further indent
  var r = new RegExp('^(\S*)','mg');
  v= v.replace(r,'    $1');
  context.setVariable(properties.outboundVariableName, v);
}
  </Source>
</Javascript>

العنصر <SSLInfo>

تحدّد هذه السياسة السمات المستخدمة لضبط بروتوكول أمان طبقة النقل (TLS) لجميع مثيلات عميل HTTP التي تم إنشاؤها من خلال سياسة JavaScript.

    <SSLInfo>
        <Enabled>trueFalse</Enabled>
        <ClientAuthEnabled>trueFalse</ClientAuthEnabled>
        <KeyStore>ref://keystoreRef</KeyStore>
        <KeyAlias>keyAlias</KeyAlias>
        <TrustStore>ref://truststoreRef</TrustStore>
    </SSLInfo>
الخيار التلقائي: لا ينطبق
الحضور: إجراء اختياري
النوع: سلسلة

إنّ عملية ضبط بروتوكول أمان طبقة النقل (TLS) لعميل HTTP هي نفسها التي تستخدمها لضبط بروتوكول أمان طبقة النقل (TLS) لـ TargetEndpoint/TargetServer. راجِع ضبط بروتوكول أمان طبقة النقل (TLS) من Edge إلى الخلفية لمعرفة المزيد من المعلومات.

ملاحظات الاستخدام

لا تحتوي سياسة JavaScript على أي رمز. وبدلاً من ذلك، تشير سياسة JavaScript إلى "مورد" JavaScript وتحدّد الخطوة في مسار واجهة برمجة التطبيقات التي يتم فيها تنفيذ JavaScript. يمكنك تحميل النص البرمجي من خلال محرِّر الخادم الوكيل لواجهة المستخدم الإدارية، أو يمكنك تضمينه في دليل /resources/jsc في الخوادم الوكيلة لواجهة برمجة التطبيقات التي تطوّرها محليًا.

تصحيح أخطاء رمز سياسة JavaScript

استخدِم الدالة print() لعرض معلومات تصحيح الأخطاء للوحة إخراج المعاملة في أداة التتبُّع. للحصول على تفاصيل وأمثلة، يُرجى الاطّلاع على تصحيح الأخطاء باستخدام عبارات print() في JavaScript.

لعرض بيانات الطباعة في التتبُّع:

  1. افتح أداة التتبُّع وابدأ جلسة تتبُّع لخادم وكيل يحتوي على سياسة JavaScript.
  2. اتصل بالخادم الوكيل.
  3. في أداة التتبُّع، انقر على الإخراج من جميع المعاملات لفتح لوحة المخرجات.

  4. ستظهر البيانات المطبوعة في هذه اللوحة.

يمكنك استخدام الدالة print() لإخراج معلومات تصحيح الأخطاء إلى أداة التتبُّع. وتتوفر هذه الدالة مباشرةً من خلال نموذج كائن JavaScript. لمعرفة التفاصيل، يُرجى الاطّلاع على "تصحيح أخطاء JavaScript باستخدام عبارات print()".

متغيرات التدفق

لا تعمل هذه السياسة على تعبئة أي متغيّرات تلقائيًا، ولكن يمكنك ضبط (والحصول على) متغيّرات التدفق في رمز JavaScript من خلال استدعاء طُرق في كائن السياق. ويظهر النمط العادي على النحو التالي:

context.setVariable("response.header.X-Apigee-Target", context.getVariable("target.name"))

كائن السياق هو جزء من نموذج عنصر JavaScript في Apigee Edge.

مرجع الخطأ

يصف هذا القسم رموز الأخطاء ورسائل الخطأ التي يتم عرضها ومتغيّرات الأخطاء التي تضبطها Edge عندما تؤدي هذه السياسة إلى ظهور خطأ. هذه المعلومات مهمة لمعرفة ما إذا كنت تعمل على تطوير قواعد للأخطاء للتعامل مع الأخطاء. لمزيد من المعلومات، يمكنك الاطّلاع على المعلومات التي يجب معرفتها عن الأخطاء المتعلقة بالسياسات وأخطاء المعالجة.

أخطاء في وقت التشغيل

يمكن أن تحدث هذه الأخطاء عند تنفيذ السياسة.

رمز الخطأ رموز حالة HTTP السبب إصلاح
steps.javascript.ScriptExecutionFailed 500 يمكن أن تؤدي سياسة JavaScript إلى العديد من الأنواع المختلفة من أخطاء ScriptExecutionتعذّر. تشتمل أنواع الأخطاء الشائعة على RangeError وReferenceError وSyntaxError وTypeError وURIError.
steps.javascript.ScriptExecutionFailedLineNumber 500 حدث خطأ في رمز JavaScript. راجع سلسلة الخطأ للحصول على التفاصيل. لا ينطبق
steps.javascript.ScriptSecurityError 500 حدث خطأ متعلق بالأمان عند تنفيذ JavaScript. راجِع سلسلة الخطأ للحصول على التفاصيل. لا ينطبق

أخطاء النشر

يمكن أن تحدث هذه الأخطاء عند نشر خادم وكيل يحتوي على هذه السياسة.

اسم الخطأ السبب إصلاح
InvalidResourceUrlFormat إذا كان تنسيق عنوان URL للمورد المحدّد في <ResourceURL> أو العنصر <IncludeURL> في سياسة JavaScript غير صالح، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات.
InvalidResourceUrlReference وإذا كان العنصران <ResourceURL> أو <IncludeURL> يشيران إلى ملف JavaScript غير متوفّر، سيتعذّر نشر الخادم الوكيل لواجهة برمجة التطبيقات. يجب أن يكون ملف المصدر المشار إليه متوفرًا على مستوى الخادم الوكيل لواجهة برمجة التطبيقات أو البيئة أو مستوى المؤسسة.
WrongResourceType يحدث هذا الخطأ أثناء النشر إذا كانت العناصر <ResourceURL> أو <IncludeURL> في سياسة JavaScript تشير إلى أي نوع موارد بخلاف jsc (ملف JavaScript).
NoResourceURLOrSource قد يتعذّر نشر سياسة JavaScript مع ظهور هذا الخطأ إذا لم يتم تعريف العنصر <ResourceURL> أو إذا لم يتم تحديد عنوان URL للمورد داخل هذا العنصر. العنصر <ResourceURL> هو عنصر إجباري. أو تم تعريف العنصر <IncludeURL> بدون تحديد عنوان URL للمورد داخل هذا العنصر. إنّ العنصر <IncludeURL> اختياري، ولكن إذا تم تعريفه، يجب تحديد عنوان URL للمورد داخل العنصر <IncludeURL>.

متغيرات الخطأ

ويتم ضبط هذه المتغيّرات عندما تؤدي هذه السياسة إلى ظهور خطأ في وقت التشغيل. لمزيد من المعلومات، اطّلِع على المعلومات التي تحتاج إلى معرفتها عن الأخطاء المتعلقة بالسياسات.

المتغيرات المكان مثال
fault.name="fault_name" fault_name هو اسم الخطأ، كما هو موضَّح في جدول أخطاء وقت التشغيل أعلاه. اسم الخطأ هو الجزء الأخير من رمز الخطأ. fault.name Matches "ScriptExecutionFailed"
javascript.policy_name.failed policy_name هو اسم السياسة التي حدّدها المستخدم التي أدت إلى حدوث الخطأ. javascript.JavaScript-1.failed = true

مثال على الردّ على الخطأ

{
  "fault": {
    "faultstring": "Execution of SetResponse failed with error: Javascript runtime error: "ReferenceError: "status" is not defined. (setresponse.js:6)\"",
    "detail": {
      "errorcode": "steps.javascript.ScriptExecutionFailed"
    }
  }
}

مثال لقاعدة خطأ

<FaultRule name="JavaScript Policy Faults">
    <Step>
        <Name>AM-CustomErrorResponse</Name>
        <Condition>(fault.name Matches "ScriptExecutionFailed") </Condition>
    </Step>
    <Condition>(javascript.JavaScript-1.failed = true) </Condition>
</FaultRule>

المخطّط

ويتم تحديد كل نوع من أنواع السياسات من خلال مخطّط XML (.xsd). وتتوفّر مخطّطات السياسات كمرجع على GitHub.

مواضيع ذات صلة

مقالات في منتدى Apigee

يمكنك العثور على هذه المقالات ذات الصلة في منتدى Apigee: