پیوست کردن یک خط مشی به یک ProxyEndpoint یا TargetEndpoint Flow

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

سیاست‌ها تا زمانی که به یک جریان (Flow) متصل نشوند، اجرا نمی‌شوند. می‌توانید با نامگذاری یک سیاست در پیکربندی مرحله (Step configuration)، یک پیوست سیاست ایجاد کنید.

انتخاب نقطه اتصال برای رفتار پروکسی API شما بسیار مهم است. برای مثال، اگر سیاست سهمیه‌بندی را به یک جریان پاسخ متصل کنید، سهمیه‌بندی پس از ارسال پیام درخواست به سرویس backend اعمال می‌شود. این امر هدف اعمال سیاست سهمیه‌بندی را از بین می‌برد! بنابراین، باید سیاست سهمیه‌بندی را به عنوان یک مرحله پردازش در جریان درخواست متصل کنید.

قالب پیوست سیاست به شرح زیر است:

<Step>
    <Name>{policy_name}</Name>
</Step>

برای مثال:

<Step>
    <Name>QuotaPolicy</Name>
</Step>

یک سیاست با اضافه کردن پیکربندی Step به عنصر جریان درخواست یا پاسخ مناسب در پیکربندی ProxyEndpoint یا TargetEndpoint به یک جریان متصل می‌شود.

شما می‌توانید یک سیاست را به یک جریان درخواست یا پاسخ پیوست کنید. جریان‌های درخواست و پاسخ خود به دو دسته‌ی پیش‌جریان (PreFlow) و پس‌جریان (PostFlow) تقسیم می‌شوند.

مثال زیر پیکربندی حداقلی ProxyEndpoint را بدون هیچ پیوست سیاستی نشان می‌دهد. این مثال به سادگی HTTPProxyConnection (ورودی) و یک RouteRule را تعریف می‌کند.

<ProxyEndpoint name="default">
    <HTTPProxyConnection>
        <BasePath>/weather</BasePath>
        <VirtualHost>default</VirtualHost>
    </HTTPProxyConnection>
    <RouteRule name="default">
        <TargetEndpoint>default</TargetEndpoint>
    </RouteRule>
</ProxyEndpoint>

شما باید این پیکربندی را طوری تغییر دهید که ProxyEndpoint قبل از اینکه پروکسی API هرگونه پردازش دیگری را انجام دهد، یک سیاست سهمیه‌بندی (به عنوان یک مرحله پردازش) را اعمال کند. اگر یک توسعه‌دهنده از سهمیه‌بندی تجاوز کرده باشد، شما نمی‌خواهید هیچ منبع محاسباتی را برای درخواست‌های اضافی هدر دهید.

برای اعمال این پیکربندی، یک مرحله پردازش را به درخواست PreFlow به صورت زیر پیوست می‌کنید:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request>
      <Step><Name>QuotaPolicy</Name></Step>
    </Request>
  </PreFlow>
  <HTTPProxyConnection> 
    <BasePath>/weather</BasePath> 
    <VirtualHost>default</VirtualHost> 
  </HTTPProxyConnection> 
  <RouteRule name="default"> 
    <TargetEndpoint>default</TargetEndpoint> 
  </RouteRule> 
</ProxyEndpoint>

گاهی اوقات، ممکن است بخواهید یک سیاست پس از پردازش اولیه دیگری در ProxyEndpoint اجرا شود. به عنوان مثال، می‌خواهید Quota را در PreFlow بررسی کنید، سپس پس از بررسی Quota، مجموعه دیگری از پردازش‌ها را انجام دهید، مانند تبدیل درخواست از JSON به XML. برای انجام این کار، یک سیاست را به مسیر درخواست PostFlow پیوست کنید. در زیر یک نمونه پیوست درخواست PostFlow آمده است. این سیاست پس از اجرای تمام سیاست‌های موجود در PreFlow (و هر جریان شرطی) روی پیام درخواست اجرا می‌شود.

<PostFlow>
  <Request>
    <Step><Name>JSONtoXMLPolicy</Name></Step>
  </Request>
</PostFlow>

در ادامه یک نمونه پیوست پاسخ PostFlow آمده است. این سیاست روی پیام پاسخ اجرا می‌شود. (پاسخ ProxyEndpoint PostFlow آخرین مرحله پردازش قبل از بازگشت پاسخ به برنامه کلاینت درخواست‌کننده است.)

<PostFlow>
  <Response>
    <Step><Name>XMLtoJSONPolicy</Name></Step>
  </Response>
</PostFlow>