מדיניות ParsePayload

מדיניות ניתנת להרחבה

הדף הזה רלוונטי ל-Apigee ול-Apigee Hybrid.

לעיון במסמכי התיעוד של Apigee Edge

המדיניות ParsePayload מחלצת פעולות לוגיות ממטענים מובנים של בקשות (כמו JSON-RPC 2.0) למשתני זרימת הודעות. הפונקציונליות הזו מאפשרת לאדמין של ה-proxy להטמיע לוגיקה של ניתוב מותנה ישירות על סמך תוכן הבקשה של הלקוח, במקום על נתיבי משאבים בסיסיים או על פרמטרים של שאילתות.

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

רכיב <ParsePayload>

מציין את מאפייני הניתוח של האימות שמוחלים על מחזורי ההערכה של הלוגיקה של האפליקציה.

חובה? חובה
רכיב אב לא רלוונטי
רכיבי צאצא <Source>
<PayloadType>
<Protocol>

תחביר

רכיב ParsePayload משתמש בתחביר הבא:

<ParsePayload continueOnError="[false|true]" enabled="[true|false]" name="policy_name">
    <Source>request</Source>
    <PayloadType>JSON-RPC-2.0</PayloadType>
    <Protocol>MCP</Protocol>
</ParsePayload>

דוגמה

בדוגמה הבאה מוצגת הגדרה רגילה של מדיניות ParsePayload:

<ParsePayload continueOnError="false" enabled="true" name="parse-payload-mcp">
    <Source>request</Source>
    <PayloadType>JSON-RPC-2.0</PayloadType>
    <Protocol>MCP</Protocol>
</ParsePayload>

<Source>

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

<Source>request</Source>
מאפיין תיאור ברירת מחדל נוכחות
לא רלוונטי ערך של צומת טקסט. הערך חייב להיות request או response. request אופציונלי

<PayloadType>

הוא קובע את מבני ההערכה הכוללים שמוכרים בהקשר של דרישות עיבוד הנתונים.

<PayloadType>JSON-RPC-2.0</PayloadType>
מאפיין תיאור ברירת מחדל נוכחות
לא רלוונטי ערך של צומת טקסט. ערכים נתמכים: JSON-RPC-2.0. לא רלוונטי חובה

<Protocol>

קובע את התנהגויות העיצוב בהתאם להצהרות של ממשק היעד.

<Protocol>MCP</Protocol>
מאפיין תיאור ברירת מחדל נוכחות
לא רלוונטי ערך של צומת טקסט. ערך נתמך: MCP. לא רלוונטי חובה

משתני תהליך שחולצו

אחרי הניתוח, שגרות ממלאות מראש את משתני הזרימה הבאים על סמך מטען הייעודי (payload).

שם המשתנה תיאור
apigee.payload.operation מזהה ההרצה שנוצר.
  • ב-tools/call, זה tools/call/{name} (לדוגמה, tools/call/get_weather), כדי להבחין בין הכלים הספציפיים שמופעלים.
  • ב-tools/list, הערך הוא tools/list, שמשמש כשמציגים רשימה של כלים זמינים בלי לטרגט כלי ספציפי.
apigee.payload.json-rpc.request.method השדה method מבקשת JSON-RPC (לדוגמה, tools/call או tools/list).
apigee.payload.json-rpc.request.id השדה id מבקשת JSON-RPC.
apigee.payload.json-rpc.request.params.name השדה name בתוך params (מאוכלס עבור tools/call כדי לזהות את הכלי).
apigee.payload.json-rpc.request.params.arguments.{arg_name} הארגומנטים שמועברים באובייקט arguments. ערכי מחרוזות מאוחסנים ישירות. אובייקטים או מערכים מוטמעים מאוחסנים כמחרוזות JSON שעברו סריאליזציה.

דוגמה

למטען הייעודי (payload) של בקשת JSON-RPC הבאה עם ארגומנטים פשוטים:

{
  "jsonrpc": "2.0",
  "id": "req_001",
  "method": "tools/call",
  "params": {
    "name": "get_weather",
    "arguments": {
      "location": "San Francisco, CA",
      "forecast_days": 3
    }
  }
}

המדיניות מאכלסת את המשתנים הבאים:

משתנה ערך
apigee.payload.operation tools/call/get_weather
apigee.payload.json-rpc.request.method tools/call
apigee.payload.json-rpc.request.id req_001
apigee.payload.json-rpc.request.params.name get_weather
apigee.payload.json-rpc.request.params.arguments.location San Francisco, CA
apigee.payload.json-rpc.request.params.arguments.forecast_days 3