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

أنت تعرض مستندات 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 متاح من جميع السياقات.