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

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

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

موارد استفاده کنید

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

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

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

می توانید از خط مشی AssignMessage برای تخصیص مقادیری مانند هدرها به شی پاسخ استفاده کنید. Assign Message به طور خودکار سوئیچ را در زمینه از جریان درخواست/پاسخ به جریان خطا کنترل می کند.

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