متغیر جریان پیام

درحال مشاهده اسناد Apigee Edge هستید.
به اسناد Apigee X بروید.
اطلاعات

دسترسی به متغیر جریان message و ویژگی‌های آن به نقطه‌ای در «جریان پراکسی API» که در آن دسترسی انجام می‌شود بستگی دارد. این ویژگی در همه زمینه‌ها دردسترس است، درحالی‌که برخی‌از اشیا، مثل request یا response دردسترس نیستند.

موارد استفاده

مورد استفاده اصلی برای متغیر جاری‌سازی message زمانی است که پراکسی شما وارد جاری‌سازی خطا می‌شود: متغیرهای جاری‌سازی request و response خارج از محدوده هستند.

برای مثال، در جریان خطا، شیء response دردسترس نیست. اگر در جریان خطا باشید، نمی‌توانید سرصفحه‌های پاسخ را در شیء response با خط‌مشی JavaScript تنظیم کنید. درعوض، می‌توانید از یکی از موارد زیر استفاده کنید:

هر دوی این اشیا در جریان خطا دردسترس هستند و می‌توانند برای تنظیم سرصفحه‌های پاسخ از درون خط‌مشی JavaScript استفاده شوند یا در خط‌مشی‌های دیگری که می‌توانند از متغیرهای جریان استفاده کنند قابل‌دسترسی باشند.

می‌توانید از خط‌مشی AssignMessage برای اختصاص دادن مقادیر، مثل سرایندها، به شیء پاسخ استفاده کنید. «اختصاص پیام» به‌طور خودکار تغییر در زمینه را از جریان درخواست/پاسخ به جریان خطا مدیریت می‌کند.

مورد استفاده دیگر برای متغیر message ثبت داده‌های پاسخ در PostClientFlow با خط‌مشی MessageLogging است. اگر از شیء message استفاده می‌کنید، می‌توانید اطلاعات پاسخ را به‌طور یکپارچه در شرایط موفقیت و خطا در پراکسی ثبت کنید.

مثال‌ها

در جریان خطا، می‌توانید سرصفحه پاسخ را از خط‌مشی جاوا اسکریپت بااستفاده از 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 در خط‌مشی جاوا اسکریپت استفاده کنید. برای مثال:

<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 از همه زمینه‌ها دردسترس است.