متغيّر تدفق الرسائل

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

يعتمد الوصول إلى متغيّر مسار message وخصائصه على النقطة ضمن تدفق الخادم الوكيل لواجهة برمجة التطبيقات التي يتم الوصول إليها. هذه السمة متاحة في جميع السياقات، في حين لا تتوفّر بعض العناصر، مثل request أو response.

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

إنّ حالة الاستخدام الرئيسية لمتغيّر التدفق message هي عندما يُدخِل الخادم الوكيل مسار الخطأ: يكون متغيّرا التدفق request وresponse خارج النطاق.

على سبيل المثال، في مسار الخطأ، لا يكون الكائن response متاحًا. ولن تتمكّن من ضبط عناوين الاستجابة في العنصر response باستخدام سياسة JavaScript إذا كنت في مسار الخطأ. بدلاً من ذلك، يمكنك استخدام أحد الخيارات التالية:

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

يمكنك استخدام سياسة AssignMessage لتحديد قيم، مثل العناوين، لكائن response. تعالج ميزة "تعيين الرسالة" تلقائيًا عملية التبديل في السياق من مسار الطلب/الاستجابة إلى مسار الخطأ.

ومن حالات الاستخدام الأخرى للمتغيّر message، تسجيل بيانات الاستجابة في PostClientFlow باستخدام سياسة MessageLogging. إذا استخدمت الكائن message، يمكنك تسجيل معلومات الاستجابة بسلاسة بعد التأكّد من استيفاء شروط النجاح والخطأ في الخادم الوكيل.

أمثلة

خلال مسار الخطأ، يمكنك ضبط عنوان استجابة من سياسة JavaScript باستخدام error أو message. مثلاً:

context.setVariable('error.header.FOO-1', 'error_header');

أو

context.setVariable('message.header.FOO-2', 'message_header');

ولكن التعبير التالي لن يعمل:

context.setVariable('response.header.FOO-3', 'response_header');

في هذه الحالة، يكون المتغيّر response خارج النطاق في مسار الخطأ. (يُرجى العلم أنّه في أي تتبُّع، تتم الإشارة إلى ذلك مرئيًا من خلال المتغيّرات المعروضة بعلامة يساوي مع شرطة مائلة).

لضبط عناوين الاستجابة لكل من مسارَي النجاح والأخطاء في سياسة واحدة، يمكنك استخدام message في سياسة JavaScript. مثلاً:

<faultrules>
  <faultrule name="invalid_key_rule">
    <step>
      <name>SetResponseHeaders</name>
    </step>
    <condition>(fault.name = "InvalidApiKey")</condition>
  </faultrule>
</faultrules>

في السياسة، يضبط الرمز البرمجي مثل ما يلي عنوان الخطأ/الاستجابة في أي سياق تدفق:

context.setVariable('message.header.FOO-1', 'the header value');

يمكنك إعادة استخدام هذه السياسة نفسها في المسار العادي لـ ProxyResponse، وستنجح هذه السياسة لأن سياسة message متوفرة من جميع السياقات.