אתם צופים במסמכי התיעוד של Apigee Edge.
כדאי לעיין במסמכי התיעוד של Apigee X. מידע
תהליכים הם אבני הבניין הבסיסיות של שרתי proxy ל-API. התכונה 'זרימות' מאפשרת לתכנת את ההתנהגות של API על ידי הגדרת הרצף שבו מדיניות וקוד מבוצעים על ידי שרת proxy של API.
סקירה כללית של המושגים שקשורים ל-Flows מופיעה במאמר שליטה באופן ההפעלה של שרת proxy באמצעות Flows.
בנושא הזה נסביר איך ליצור תהליכים מותנים ולהוסיף לתהליכים לוגיקה (כללי מדיניות) ברמה גבוהה. יצירת תנאים היא תורה בפני עצמה, ואין אפשרות לכסות את כל הנושא במאמר הזה. פרטים נוספים זמינים במאמרים סקירה כללית של משתני זרימה ותנאים עם משתני זרימה.
צירוף מדיניות לזרימות
Edge כולל סוגים רבים ושונים של כללי מדיניות מוגדרים מראש ליישום אבטחה, לניהול תנועה ולשינוי הודעות. בנוסף, המדיניות מאפשרת לכם להוסיף קוד מותאם אישית משלכם כדי להתאים אישית את עיבוד ההודעות.
לדוגמה:
- מצרפים מדיניות אבטחת OAuth אל הבקשה PreFlow של ProxyEndpoint. מכיוון ש-PreFlow של בקשת ProxyEndpoint הוא הזרימה הראשונה בצינור, אפשר לדחות בקשה באופן מיידי אם היא מפרה את מדיניות האבטחה שלכם.
- מצרפים מדיניות JSON to XML conversion אל response PostFlow של TargetEndpoint כדי להמיר תגובה מ-JSON ל-XML.
- מצרפים מדיניות JavaScript לConditional Flow של ProxyEndpoint כדי להריץ קוד JavaScript לעיבוד הבקשה
אחרי שיוצרים זרימה מותנית, היא זמינה לצירוף למדיניות. אחרי שבוחרים את התהליך, לוחצים על הסמל + שלב בתרשים הבקשה או התגובה כדי להוסיף לתהליך מדיניות חדשה או קיימת.


אם מצרפים את המדיניות לזרימה שנבחרה, מגדירים את proxy ל-API כך שיאכוף את מדיניות המכסה רק על בקשות שנשלחות לשילוב של מזהה ה-URI והפועל של הזרימה. לדוגמה, אם מצרפים את המדיניות לזרימת learn בבקשה, ה-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 Proxy עם תבנית URI של .../issue/** (/issue/ עם כל דבר ב-URI אחרי קו הנטוי האחרון), המכסה נאכפת על הקריאה הזו ל-API.
מידע על תהליכים מותנים
כל כללי המדיניות שמצורפים ל-PreFlow או ל-PostFlow תמיד מופעלים. עם זאת, המדיניות בתהליך מותנה מופעלת רק אם התנאי של התהליך מוערך כ-True.
במהלך העיבוד של בקשה ותגובה, רק תהליך מותנה אחד מופעל לכל פלח – התהליך הראשון שהתנאי שלו הוא true. כלומר, יכול להיות לכם זרימה מותנית אחת שתופעל כחלק מכל אחד מהמקרים הבאים:
- פייפליין הבקשות של ProxyEndpoint
- צינור העיבוד של בקשות TargetEndpoint
- צינור עיבוד נתונים לתגובה של ProxyEndpoint
- צינור עיבוד התגובה של TargetEndpoint
סרטון: כאן אפשר לצפות בסרטון קצר כדי לקבל מידע נוסף על תהליכים מותנים.
לדוגמה, בהגדרה הבאה של ProxyEndpoint מוצג רצף פעולות מותנה שמופעל על ידי ProxyEndpoint בכל בקשת HTTP GET ל-proxy ל-API:
<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 שלכם. לדוגמה, אם ה-backend של השירות מספק דוחות ותחזיות מזג אוויר, יכול להיות ש-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 שמשמשת לגישה ל-proxy ל-API. אחר כך תוכלו לצרף מדיניות שונה לזרימה המותנית של כל משאב.
הוספת רצף פעולות מותנה
בדוגמה הקצרה הזו, מגדירים זרימה שמופעלת רק כשבקשת ההודעה היא HTTP GET.
כדי להוסיף זרימה מותנית, בוחרים בכרטיסייה פיתוח בכלי ליצירת proxy ל-API.

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

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

(כאן מוסבר איך ליצור משפטים מותנים במשתנים ובתנאים של Flow).
התהליך החדש, שנקרא Flow-1, מופיע עכשיו בתפריט הניווט.

עכשיו בודקים את הגדרות ה-XML של ProxyEndpoint. בתפריט Navigator, בוחרים באפשרות 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>השלבים הבאים
בנושאים הבאים מפורט מידע נוסף על בניית תנאים ועל שימוש במשתנים: