انتظر

ينطبق على: جميع مستويات إدارة واجهة برمجة التطبيقات

ينفذ نهج wait النهج الفرعي المباشر بالتوازي، وينتظر تكتمل كل نُهجها الفرعية المباشرة أو واحد منها قبل اكتمالها. wait يمكن أن يكون للنهج نهج فرعية فورية واحدة أو أكثر من النهج التالية: send-requestو cache-lookup-valueوchoose.

إشعار

تعيين عناصر النهج والعناصر التابعة بالترتيب الوارد في بيان النهج. تعلم كيفية إعداد نُهج APIM أو تعديلها.

نهج السياسة

<wait for="all | any">
  <!--Wait policy can contain send-request, cache-lookup-value,
        and choose policies as child elements -->
</wait>

سمات

السمة ‏‏الوصف مطلوبة افتراضي
من أجل تحديد ما إذا كان النهج wait ينتظر اكتمال جميع نهج الأطفال المباشرة أو نهج واحد فقط. القيم المسموح بها هي:

- all - انتظر حتى يكتمل جميع نهج الأطفال المباشرة
- any - انتظر حتى يكتمل أي نهج تابع فوري. بمجرد اكتمال أول نهج فرعي مباشر، يكتمل نهج wait ويتم إنهاء أي نهج فرعية أخرى مباشرة.

يتم السماح بتعبيرات النهج.
لا all

عناصر

قد تحتوي كعناصر فرعية على نهج send-request وcache-lookup-value وchoose فقط.

الاستخدام

  • أقسام النهج: الواردة والصادرة والخلفية
  • نطاقات النهج: العمومية، ومساحة العمل، والمنتج، وواجهة برمجة التطبيقات، والتشغيل
  • البوابات: الكلاسيكية، الإصدار 2، الاستهلاك، المستضافة ذاتيا

مثال

في المثال التالي، هناك نوعان choose من السياسات كسياسات تابعة مباشرةwait للسياسة. يتم تنفيذ كل نهج من هذه choose النهج بشكل متوازٍ. يحاول كل نهج choose استرداد قيمة مخزنة مؤقتاً. إذا كان هناك خطأ في ذاكرة التخزين المؤقت، يتم استدعاء خدمة الواجهة الخلفية لتوفير القيمة. في هذا المثال، لا يكتمل النهج wait حتى تكتمل جميع نهجها الفرعية المباشرة، لأنه تم تعيين السمة for على all. في هذا المثال، تم التصريح عن متغيرات السياق (execute-branch-one وvalue-one وexecute-branch-two وvalue-two) خارج نطاق نهج المثال هذا.

<wait for="all">
  <choose>
    <when condition="@((bool)context.Variables["execute-branch-one="])">
      <cache-lookup-value key="key-one" variable-name="value-one" />
      <choose>
        <when condition="@(!context.Variables.ContainsKey("value-one="))">
          <send-request mode="new" response-variable-name="value-one">
            <set-url>https://backend-one</set-url>
            <set-method>GET</set-method>
          </send-request>
        </when>
      </choose>
    </when>
  </choose>
  <choose>
    <when condition="@((bool)context.Variables["execute-branch-two="])">
      <cache-lookup-value key="key-two" variable-name="value-two" />
      <choose>
        <when condition="@(!context.Variables.ContainsKey("value-two="))">
          <send-request mode="new" response-variable-name="value-two">
            <set-url>https://backend-two</set-url>
            <set-method>GET</set-method>
          </send-request>
        </when>
      </choose>
    </when>
  </choose>
</wait>

لمزيد من المعلومات حول العمل مع النُهج، راجع: