מוצג המסמך של Apigee Edge.
עוברים אל
מסמכי תיעוד של Apigee X. מידע
הגישה למשתנה הזרימה message
ולמאפיינים שלו תלויה בנקודה שבתוך
תהליך ה-Proxy ל-API שבו מתבצעת הגישה. הוא זמין בכל ההקשרים, ואילו באובייקטים מסוימים,
כמו request
או response
, הם לא.
תרחישים לדוגמה
התרחיש לדוגמה הראשי של משתנה הזרימה message
הוא כששרת ה-Proxy מזין את
שגיאה: משתני הזרימה request
ו-response
לא נכללים.
לדוגמה, בתהליך השגיאה, האובייקט response
לא זמין. לא
יכולת להגדיר כותרות תגובה באובייקט response
באמצעות מדיניות JavaScript.
אם נמצאים בתהליך השגיאה. במקום זאת, אפשר להשתמש באחת מהאפשרויות הבאות:
שני האובייקטים זמינים בתהליך השגיאה, ואפשר להשתמש בהם כדי להגדיר תשובות כותרות מתוך מדיניות JavaScript או שניתן לגשת אליהן במדיניות אחרת שיכולה להשתמש בזרימה משתנים.
אפשר להשתמש במדיניות AssignMessage כדי להקצות ערכים, כמו כותרות, לאובייקט response. התכונה 'הקצאת הודעה' תטפל אוטומטית במעבר הקשר מזרימת הבקשה/התגובה לתהליך השגיאה.
תרחיש לדוגמה נוסף למשתנה message
הוא רישום של נתוני תגובות
PostClientFlow עם מדיניות MessageLogging. אם משתמשים באובייקט message
,
אפשר לתעד באופן חלק את נתוני התגובות בהתאם לתנאי ההצלחה ולשגיאות
שרת proxy.
דוגמאות
במקרה של שגיאה, אפשר להגדיר כותרת תגובה ממדיניות JavaScript באמצעות
error
או message
. לדוגמה:
context.setVariable('error.header.FOO-1', 'error_header');
OR
context.setVariable('message.header.FOO-2', 'message_header');
עם זאת, הביטוי הבא לא יעבוד:
context.setVariable('response.header.FOO-3', 'response_header');
במקרה הזה, המשתנה response
לא נכלל בהיקף של
ועוד שגיאה. (שימו לב: במעקב, זה מצוין באופן חזותי באמצעות משתנים שמוצגים עם סימן שוויון ל-
עם קו נטוי).
כדי להגדיר במדיניות אחת כותרות תגובה גם לתהליך הצלחה וגם לתהליכי שגיאות, צריך
יכול להשתמש ב-message
בתוך מדיניות JavaScript. לדוגמה:
<faultrules> <faultrule name="invalid_key_rule"> <step> <name>SetResponseHeaders</name> </step> <condition>(fault.name = "InvalidApiKey")</condition> </faultrule> </faultrules>
במדיניות, קוד כמו בדוגמה הבאה מגדיר את כותרת השגיאה/התשובה בכל הקשר של זרימה:
context.setVariable('message.header.FOO-1', 'the header value');
תוכלו להשתמש שוב במדיניות הזו בתהליך הרגיל של ProxyResponse והיא תצליח, מפני
message
זמין מכל ההקשרים.