הגדרת תהליכי עבודה

כרגע מוצג התיעוד של Apigee Edge.
כניסה למסמכי התיעוד של Apigee X.
מידע

תהליכי העבודה הם אבני הבניין הבסיסיות של שרתי proxy של API. תהליכי העבודה מאפשרים לך לתכנת את ההתנהגות של ממשק API, על ידי הגדרת הרצף שבו כללי המדיניות והקוד מופעלים על ידי שרת proxy של ה-API.

סקירה כללית רעיונית של תהליכי עבודה זמינה במאמר שליטה באופן שבו שרת proxy מופעל באמצעות זרימות.

במאמר הזה נסביר איך ליצור זרימות מותנות ולהוסיף לוגיקה (מדיניות) לתהליכי עבודה ברמה גבוהה. האומנות של יצירת תנאים כרוכה בפירוט רב יותר מהנושא הזה. למידע נוסף אפשר לקרוא את המאמר סקירה כללית על משתני זרימה ותנאים עם משתני זרימה.

צירוף כללי מדיניות לתהליכי העבודה

Edge כולל סוגים רבים של כללי מדיניות מוגדרים מראש להטמעת אבטחה, לניהול תעבורת הנתונים ולטיפול בהודעות. בנוסף, כללי המדיניות מאפשרים להוסיף קוד בהתאמה אישית כדי לבצע התאמה אישית מלאה של עיבוד ההודעות.

לדוגמה:

  • מצרפים מדיניות אבטחת OAuth לבקשת הקצאה מראש של ProxyEndpoint. מכיוון שהבקשה PreFlow של בקשת ProxyEndpoint היא התהליך הראשון בצינור עיבוד הנתונים, ניתן לדחות בקשה מיידית אם היא מפרה את מדיניות האבטחה שלך.
  • כדי להמיר תשובה מ-JSON ל-XML, צריך לצרף מדיניות המרה של JSON ל-XML ל-PostFlow של התגובה של TargetEndpoint.
  • צריך לצרף מדיניות JavaScript לזרימה מותנית של ProxyEndpoint כדי להפעיל קוד JavaScript לעיבוד הבקשה

אחרי שיוצרים תהליך מותנה, אפשר לצרף אותו למדיניות. אחרי שבוחרים את התהליך, לוחצים על הסמל + שלב בתרשים הבקשה או התגובה כדי להוסיף מדיניות חדשה או קיימת לתהליך.

בתפריט Navigator מודגשת דוגמה לזרימה מותנית בשם בעיה, ובחלונית 'זרימה' מוצג הלחצן 'שלב'.

בחלונית 'הוספת שלב' נוצר מופע חדש של מדיניות, עם סוג המדיניות Quota והשם המוצג Quota-2.

צירוף המדיניות לתהליך שנבחר מגדיר את שרת ה-API של שרת ה-API כך שיאכוף את מדיניות המכסה רק עבור בקשות שנשלחות לשילוב של ה-URI והפועל הזה. לדוגמה, אם תצרפו את המדיניות לתהליך הלמידה בבקשה, ה-XML הבא ייווצר בתצוגת הקוד של עורך ה-proxy:

<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 מגיעה דרך שרת ה-API של ה-API עם תבנית URI של .../issue/** (/issue/ עם כל דבר ב-URI אחרי הקו הנטוי הקדמי האחרון), המכסה נאכפת בקריאה הזו ל-API.

מידע על תהליכי עבודה מותנים

כל מדיניות שמצורפת ל-PreFlow או ל-PostFlow תמיד מיושמת. עם זאת, כללי המדיניות בתהליך מותנה מתבצעים רק אם התנאי של הזרימה מקבל ערך של True.

במהלך העיבוד של בקשה ותגובה, מתבצע רק תהליך מותנה אחד לכל פלח – הזרימה הראשונה שהתנאי שלו מתקיים כ-true. המשמעות היא שאפשר לבצע זרימה מותנית אחת כחלק מכל אחד מהגורמים הבאים:

  • צינור עיבוד הנתונים לבקשות של ProxyEndpoint
  • צינור עיבוד הנתונים לבקשות של TargetEndpoint
  • צינור עיבוד הנתונים למענה של ProxyEndpoint
  • צינור עיבוד הנתונים למענה של TargetEndpoint

סרטון: מומלץ לצפות בסרטון קצר כדי לקבל מידע נוסף על תהליכי עבודה מותנים.

לדוגמה, ההגדרה הבאה של ProxyEndpoint מציגה זרימה מותנית שמבוצעת על ידי ProxyEndpoint בכל בקשת HTTP GET לשרת ה-API של שרת ה-proxy:

<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. משתנה זרימה מקבל שם שמכיל הפניות לשמירת פרטי מצב המשויכים לטרנזקציית API שמעובדת על ידי Edge. ב-Edge מוגדרים משתני מצב רבים שאתם יכולים להפנות אליהם.

שירותי RESTful הם אוספים של משאבי API. משאב API הוא מקטע של נתיב ה-URI שמזהה ישות כלשהי שמפתחים יכולים לגשת אליה באמצעות קריאה ל-API. לדוגמה, אם הקצה העורפי של השירות מספק דוחות מזג אוויר ותחזיות מזג אוויר, ה-API עשוי להגדיר שני תהליכי חיפוש מותנים שממופים אל משאבי ה-API האלה: /reports ו-/forecasts. כשקריאה ל-API כוללת אחד מהמשאבים האלה בכתובת ה-URL, התנאי מקבל את הערך True ומתבצעת לוגיקה שמצורפת לתהליך המותנה.

לאחר מכן, מפתחי אפליקציות ניגשים למשאבים על ידי שליחת בקשות לכתובת URL בטופס:

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

או:

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

בשרת proxy ל-API, אפשר להגדיר זרימה מותנית שתואמת למשאב ספציפי:

<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 שמשמש לגישה לשרת ה-API של ה-API. לאחר מכן אפשר לצרף כללי מדיניות שונים לתהליך המותנה לכל משאב.

הוספת תהליך מותנה

בדוגמה הקצרה הזו אפשר להגדיר זרימה שיופעל רק כאשר הודעת הבקשה היא HTTP GET.

כדי להוסיף תהליך מותנה, בוחרים בכרטיסייה פיתוח בכלי ליצירת proxy ל-API.

הכרטיסייה &#39;פיתוח&#39; של הכלי ליצירת proxy

לוחצים על הסמל + בנקודת הקצה הרצויה.

לחצן להוספת תהליך מותנה

בטופס זרימה מותנית חדשה אפשר לתת שם לזרימה ולהגדיר תנאי. בדוגמה הבאה מוסיפים תנאי פשוט שמעריך את ה-HTTP של הודעת הבקשה עבור פועל מסוג GET (בניגוד ל-PUT, POST וכו') בכל URI אחרי הנתיב הבסיסי.

בחלונית &#39;זרימה מותנית חדשה&#39;, הזרימה נקראת Flu-1, והסוג של התנאי, הנתיב והפועל מוגדרים.

(כאן מוסבר איך ליצור הצהרות מותנות בקטע משתני זרימה ותנאים.)

התהליך החדש, שנקרא Flow-1, מופיע עכשיו בתפריט Navigator.

חלק 1 מודגש

בודקים את תצורת ה-XML של ProxyEndpoint. בוחרים באפשרות Flow-1 בתפריט Navigator.

תופיע ההגדרה הבאה.

<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>

השלבים הבאים

בנושאים הבאים יש פרטים נוספים על יצירת תנאים ושימוש במשתנים: