ضبط التدفقات

يتم الآن عرض مستندات Apigee Edge.
انتقِل إلى مستندات Apigee X.
المعلومات

التدفقات هي الكتل البرمجية الإنشائية الأساسية للخوادم الوكيلة لواجهة برمجة التطبيقات. تتيح لك المسارات برمجة سلوك واجهة برمجة التطبيقات عن طريق السماح لك بضبط التسلسل الذي يتم فيه تنفيذ السياسات والرموز بواسطة خادم وكيل لواجهة برمجة التطبيقات.

للحصول على نظرة عامة مفاهيمية عن التدفقات، يُرجى الاطّلاع على التحكّم في كيفية تنفيذ الخادم الوكيل مع التدفقات.

يوضّح هذا الموضوع كيفية إنشاء تدفقات شرطية وإضافة منطق (سياسات) إلى التدفقات على مستوى عالٍ. يتضمن فن إنشاء الشروط تفاصيل أكثر مما يتم تناوله في هذا الموضوع. لمعرفة تلك التفاصيل، يُرجى الاطّلاع على نظرة عامة على متغيّرات التدفق والشروط مع متغيّرات التدفق.

إرفاق السياسات بالمسارات

يوفّر Edge العديد من الأنواع المختلفة من السياسات المحدّدة مسبقًا لتطبيق الأمان وإدارة عدد الزيارات ومعالجة الرسائل. بالإضافة إلى ذلك، تتيح لك السياسات إضافة رمزك المخصّص لتخصيص عملية معالجة الرسائل بالكامل.

مثال:

  • أرفِق سياسة أمان OAuth بطلب PreFlow الخاص بـ ProxyEndpoint. وبما أنّ طلب ProxyEndpoint هو PreFlow الأول في العملية، يمكنك رفض طلب فورًا إذا كان ينتهك سياسات الأمان التي تتّبعها.
  • أرفِق سياسة تحويل تنسيق JSON إلى XML باستجابة PostFlow الخاصة بـ TargetEndpoint لتحويل ردّ من JSON إلى XML.
  • أرفِق سياسة JavaScript بعملية التدفق الشرطي لـ ProxyEndpoint لتنفيذ رمز JavaScript لمعالجة الطلب.

بعد إنشاء تدفق مشروط، سيكون متاحًا لمرفق السياسة. بعد اختيار المسار، انقر على رمز + خطوة في مخطّط الطلب أو الرسم البياني للاستجابة لإضافة سياسة جديدة أو حالية إلى المسار.

في قائمة المستكشف، يتم تمييز مثال على التدفق الشرطي المسمى المشكلة،
    وفي جزء التدفق، يتم عرض زر الخطوة.

في لوحة "إضافة خطوة"، يتم إنشاء مثيل سياسة جديد من نوع السياسة "الحصة"
    والاسم المعروض "الحصة 2".

من خلال إرفاق السياسة بالمسار المحدّد، يتم ضبط الخادم الوكيل لواجهة برمجة التطبيقات لفرض سياسة الحصة فقط على الطلبات التي يتم إجراؤها إلى مجموعة معرفات الموارد المنتظمة (URI) والأفعال لهذا المسار. على سبيل المثال، إذا أرفقت السياسة بمسار التعلّم في الطلب، يتم إنشاء ملف XML التالي في عرض الترميز الخاص بأداة تعديل الخادم الوكيل:

<ProxyEndpoint name="default">
...
   <Flow name="issue">
        <Description/>
        <Request>
            <Step>
                <Name>Quota-2</Name>
            </Step>
        </Request>
        <Response/>
        <Condition>(proxy.pathsuffix MatchesPath "/issue/**") and (request.verb = "GET")</Condition>
    </Flow>
... 
</ProxyEndpoint>

خلال عملية الضبط هذه، إذا وصل طلب GET إلى الخادم الوكيل لواجهة برمجة التطبيقات بنمط عنوان URI وهو .../issue/** (/issue/ مع أي شيء في معرِّف الموارد المنتظم (URI) بعد آخر شرطة مائلة للأمام)، يتم فرض الحصة على طلب بيانات من واجهة برمجة التطبيقات هذا.

لمحة عن التدفقات الشرطية

ودائمًا ما يتم تنفيذ أي سياسات مرتبطة بـ PreFlow أو PostFlow. مع ذلك، لا يتم تنفيذ السياسات في التدفق المشروط إلا إذا تم تقييم شرط التدفق إلى true.

أثناء معالجة الطلب والاستجابة، يتم تنفيذ تدفق شرطي واحد فقط لكل شريحة، أي المسار الأول الذي يتم تقييم حالته إلى true. وهذا يعني أنّه يمكنك تنفيذ تدفق شرطي واحد كجزء من كل من:

  • مسار طلبات ProxyEndpoint
  • مسار طلبات TargetEndpoint
  • مسار استجابة ProxyEndpoint
  • مسار استجابة TargetEndpoint

فيديو: يمكنك مشاهدة فيديو قصير لمعرفة المزيد من المعلومات عن التدفقات الشرطية.

على سبيل المثال، يعرض تعريف ProxyEndpoint التالي تدفقًا شرطيًا يتم تنفيذه بواسطة ProxyEndpoint على أي طلب HTTP GET يتم توجيهه إلى الخادم الوكيل لواجهة برمجة التطبيقات:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>   
  <Flows>
    <Flow name="Flow-1">
      <Condition>request.verb="GET"</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

لاحظ أنّ الشرط يشير إلى request.verb متغيّر التدفق. تتم تسمية متغيّر التدفق بالمراجع التي تحتفظ بمعلومات الحالة المرتبطة بمعاملة واجهة برمجة التطبيقات التي تتم معالجتها بواسطة Edge. يحدّد Edge العديد من متغيّرات الحالة التي يمكنك الرجوع إليها.

خدمات REST هي مجموعات من موارد واجهة برمجة التطبيقات. مورد واجهة برمجة التطبيقات هو جزء من مسار عنوان URI يحدّد بعض الكيانات التي يمكن للمطوّرين الوصول إليها من خلال طلب بيانات من واجهة برمجة التطبيقات. على سبيل المثال، إذا كانت خلفية الخدمة توفّر تقارير الطقس وتوقعات الطقس في واجهة برمجة التطبيقات، قد تحدّد واجهة برمجة التطبيقات مسارَين مشروطَين مرتبطَين بموارد واجهة برمجة التطبيقات هذه: /reports و/forecasts. عندما يتضمن طلب بيانات من واجهة برمجة التطبيقات أحد هذه الموارد في عنوان URL، يتم تقييم الشرط إلى true ويتم تنفيذ المنطق المرتبط بالتدفق المشروط.

بعد ذلك، يصل مطوّرو التطبيقات إلى مواردك عن طريق تقديم طلبات إلى عنوان URL على النحو التالي:

http://myAPIs.myCo.com/weather/reports

أو:

http://myAPIs.myCo.com/weather/forecasts

في الخادم الوكيل لواجهة برمجة التطبيقات، يمكنك تحديد تدفق شرطي يتوافق مع مورد محدد:

<ProxyEndpoint name="default">
  <PreFlow>
    <Request/>
    <Response/>
  </PreFlow>   
  <Flows>
    <Flow name="Flow-1">
      <Condition>(proxy.pathsuffix MatchesPath "/reports")</Condition>
      <Request/>
      <Response/>
    </Flow>
    <Flow name="Flow-2">
      <Condition>(proxy.pathsuffix MatchesPath "/forecasts")</Condition>
      <Request/>
      <Response/>
    </Flow>
  </Flows>
  <PostFlow>
    <Request/>
    <Response/>
  </PostFlow>
  ...
</ProxyEndpoint>

في هذا المثال، تشير إلى متغيّر المسار proxy.pathsuffix الذي يحتوي على الجزء اللاحقة من عنوان URL المستخدَم للوصول إلى الخادم الوكيل لواجهة برمجة التطبيقات. يمكنك بعد ذلك إرفاق سياسات مختلفة بالتدفق المشروط لكل مورد.

إضافة تدفق شرطي

في هذا المثال الموجز، يمكنك إعداد تدفق لا يتم تنفيذه إلا عندما تكون رسالة الطلب هي HTTP GET.

لإضافة تدفق شرطي، حدد علامة التبويب التطوير في أداة إنشاء الخادم الوكيل لواجهة برمجة التطبيقات.

علامة تبويب &quot;التطوير&quot; في أداة إنشاء الوكيل

انقر على رمز الإضافة في نقطة النهاية المطلوبة.

زر إضافة التدفق الشرطي

يتيح لك نموذج التدفق الشرطي الجديد تسمية التدفق وتهيئة شرط. في المثال التالي، يمكنك إضافة شرط بسيط يقيّم HTTP لرسالة الطلب لفعل GET (مقابل PUT أو POST وما إلى ذلك) على أي معرّف موارد منتظم (URI) بعد المسار الأساسي.

في لوحة &quot;التدفق الشرطي الجديد&quot;، تتم تسمية التدفق باسم &quot;التدفق-1&quot;، ويتم ضبط نوع الشرط والمسار والفعل.

(تعرّف على كيفية إنشاء عبارات شرطية في متغيرات تدفق وشروطها.)

يظهر المسار الجديد، الذي يُسمى Flow-1، الآن في قائمة المستكشف.

تحديد التدفق 1

راقب الآن تهيئة XML لـ ProxyEndpoint. حدد Flow-1 في قائمة المستكشف.

ستظهر لك الإعدادات التالية.

<PreFlow name="PreFlow">
    <Request/>
    <Response/>
</PreFlow>   
<Flows>
    <Flow name="Flow-1">
      <Request/>
      <Response/>
      <Condition>(proxy.pathsuffix MatchesPath "/**") and (request.verb = "GET")</Condition>
    </Flow>
</Flows>
<PostFlow name="PostFlow">
    <Request/>
    <Response/>
</PostFlow>

الخطوات التالية

توفّر المواضيع التالية مزيدًا من التفاصيل حول إنشاء الشروط واستخدام المتغيّرات: