سياسة JavaScript

أنت الآن بصدد الاطّلاع على مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
info

الأدوات المستخدمة

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

لمحة

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

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

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

يجب أن تتضمّن ملفات مصدر JavaScript دائمًا الامتداد .js.

يمكنك الاطّلاع على البرامج والإصدارات المتوافقة لمعرفة إصدار JavaScript المتوافق حاليًا.

فيديو

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

نماذج

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

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

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

  1. في واجهة مستخدم Edge، افتح الخادم الوكيل الذي أنشأته في محرّر الخادم الوكيل.
  2. انقر على علامة التبويب تطوير.
  3. من القائمة "جديد"، انقر على نص برمجي جديد.
  4. في مربّع الحوار، اختَر JavaScript وأدخِل اسمًا للنص البرمجي، مثل js-example.
  5. ألصِق الرمز التالي في أداة تعديل الرموز واحفظ الخادم الوكيل. الأمر المهم الذي يجب ملاحظته هو العنصر context. يتوفّر هذا العنصر لرمز JavaScript البرمجي في أي مكان في مسار الخادم الوكيل. ويُستخدم للحصول على ثوابت خاصة بالتدفق، ولطلب طرق get/set المفيدة، ولإجراء المزيد من العمليات. يمثّل جزء الكائن هذا نموذج كائن 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. إذا اخترت Proxy Endpoint Preflow في &quot;المستكشف&quot;، ستلاحظ أنّه تمت إضافة السياسة إلى هذا التدفق.
  9. في "المستكشف" (Navigator)، انقر على رمز PreFlow لنقطة النهاية المستهدَفة.
  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، راجِع هذه المشاركة في &quot;منتدى Apigee&quot;. إنّ الاقتراحات المقدَّمة في &quot;منتدى Apigee&quot; هي لأغراض إعلامية فقط ولا تمثّل بالضرورة أفضل الممارسات التي تنصح بها 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 لمواصلة تنفيذ المسار حتى بعد تطبيق إحدى السياسات. فشل.

خطأ اختياري
enabled

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

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

صحيح اختياري
async

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

خطأ منهي العمل به

&lt;DisplayName&gt; عنصر

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

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

لا ينطبق

إذا لم تستخدم هذا العنصر، سيتم ضبط قيمة السمة name للسياسة على النحو التالي: استخدام البيانات المختلفة.

التواجد في المنزل اختياري
النوع سلسلة

العنصر <IncludeURL>

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

تضمين أكثر من مورد واحد يعتمد على JavaScript مع عناصر <IncludeURL> إضافية

<IncludeURL>jsc://my-javascript-dependency.js</IncludeURL>
القيمة التلقائية: بدون
الظهور: اختياري
النوع: سلسلة

مثال

يمكنك الاطّلاع على المثال الأساسي في قسم الأمثلة.

العنصر <Property>

تحدّد هذه السمة إحدى السمات التي يمكنك الوصول إليها من رمز 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>.
النوع: سلسلة

مثال

يمكنك الاطّلاع على المثال الأساسي في قسم الأمثلة.

العنصر <Source>

تتيح لك إدراج 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() لإخراج معلومات تصحيح الأخطاء إلى لوحة إخراج المعاملات في &quot;أداة التتبُّع&quot;. للاطّلاع على التفاصيل والأمثلة، راجِع عبارات print() في تصحيح الأخطاء باستخدام JavaScript.

لعرض عبارات الطباعة في "سجلّ التتبُّع"، اتّبِع الخطوات التالية:

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

  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 إلى حدوث العديد من الأنواع المختلفة من أخطاء ScriptExecutionFound (تعذّر تنفيذ النص البرمجي). شائعة تتضمن أنواع الأخطاء التي تمت رؤيتها 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: