הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.
לעיון במסמכי התיעוד של
Apigee Edge
בתהליך מותנה,
המדיניות מופעלת רק אם התנאי של התהליך מוערך כ-true (בניגוד למדיניות שמצורפת ל-PreFlow או ל-PostFlow,
שמופעלת תמיד). בקטע הזה מוסבר איך ליצור תהליך מותנה.
מידע על תהליכים מותנים
במהלך העיבוד של בקשה ותגובה, רק תהליך מותנה אחד מופעל לכל פלח – התהליך הראשון שהתנאי שלו מוערך כ-true.
||(OR) ו-&&(AND). עם זאת, כברירת מחדל, לאופרטור || יש קדימות גבוהה יותר מאשר לאופרטור &&. לדוגמה, תנאי שנכתב כ- A && B || C && D מוערך כ-A && (B || C) && D. אם רוצים לשנות את סדר העדיפות כשמשתמשים באופרטורים האלה, צריך להוסיף סוגריים לביטוי.
בדוגמאות הבאות אפשר לראות כמה דרכים לשימוש בתהליכים מותנים.
דוגמה 1
ההגדרה הבאה של 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
flow. משתנה של זרימה הוא הפניה בעלת שם שמחזיקה מידע על מצב שמשויך לעסקת API שעובדה על ידי Apigee. ב-Apigee מוגדרים הרבה משתני מצב שאפשר להפנות אליהם.
דוגמה 2
אם שרת הקצה העורפי של השירות מספק דוחות על מזג האוויר ותחזיות מזג אוויר, יכול להיות ש-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. - הוספת מדיניות לזרימה החדשה.
הוספת זרימה מותנית
כדי להוסיף זרימה מותנית:
- בוחרים בכרטיסייה Develop (פיתוח) בכלי לעריכת שרת proxy.
- בחלונית הימנית, בוחרים באפשרות Proxy endpoints > default (נקודות קצה של שרת Proxy > ברירת מחדל).

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

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

רצף הפעולות המותנה יופעל רק אם הבקשה היא בקשת
GET(אבל לא בקשה שלPUT,POSTוכו').התהליך החדש, שנקרא
Flow-1, מופיע עכשיו בחלונית Proxy Endpoint.
קוד ה-XML של הזרימה החדשה עם התנאים מוצג בכלי לעריכת טקסט.

אם רוצים, אפשר לערוך את רכיב התנאי. אפשר לעיין במאמר בנושא הוספת לוגיקה לזרימות.
צירוף מדיניות לתהליך
אחרי שיצרתם את הזרימה המותנית, אתם יכולים לצרף אליה מדיניות. בדוגמה הבאה מוסיפים מדיניות של מכסה, שמגבילה את מספר הודעות הבקשה ש-proxy ל-API מאפשר במהלך תקופה מסוימת, לזרימה:
- בחלונית הימנית, לוחצים על הלחצן + משמאל למדיניות.
- בתיבת הדו-שיח Create policy (יצירת מדיניות), לוחצים על השדה Select policy type (בחירת סוג המדיניות), גוללים למטה אל Traffic Management (ניהול תעבורה) ובוחרים באפשרות Quota (מכסה).
- לוחצים על יצירה כדי ליצור את המדיניות.
- לוחצים על הלחצן + לצד Flow-1 בחלונית Request.

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

בכלי לעריכת טקסט מוצג עכשיו שלב שמכיל את המדיניות Quota-1 ברכיב Flow-1 של ה-XML:

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