עיצוב, גישה והמרה של הודעות

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

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

אתם יכולים להשתמש במדיניות שכלולה ב-Apigee כדי לשנות את ההודעות שעוברות דרך שרתי ה-proxy של ה-API. באמצעות מדיניות, אתם יכולים:

  • המרת הודעות בין פורמטים, למשל מ-XML ל-JSON.
  • הגדרת ערכי משתנים מתוכן ההודעה ויצירת הודעות מערכי משתנים.
  • אפשר להשתמש בקוד פרוצדורלי, כמו JavaScript,‏ Java ו-Python, כדי לטפל בהודעות ובנתונים בדרכים מורכבות יותר.

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

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

טיפול פשוט ב-XML וב-JSON

‫Apigee כולל מדיניות שמקלה על ההמרה בין XML ל-JSON, ועל שינוי XML באמצעות XSL.

המרת JSON ל-XML

המדיניות JSONtoXML מקבלת קלט JSON וממירה אותו ל-XML.

בדוגמה הבאה למדיניות, המדיניות מקבלת הודעה בפורמט JSON מהמשתנה request, ואז מחליפה את ערך המשתנה בהודעה בפורמט XML. הקלט מצוין ברכיב <Source>, והפלט מצוין ברכיב <OutputVariable>.

<JSONToXML name="jsontoxml">
     <Source>request</Source>                     ---> INPUT
     <OutputVariable>request</OutputVariable>          OUTPUT --->
</JSONToXML>

המרה של XML ל-JSON

המדיניות XMLtoJSON ממירה הודעת קלט בפורמט XML לפורמט JSON.

בדוגמה הבאה למדיניות, המדיניות מקבלת הודעה בפורמט XML מהמשתנה response, ואז מחליפה את ערך המשתנה בהודעה בפורמט JSON. הקלט מצוין ברכיב <Source>, והפלט מצוין ברכיב <OutputVariable>.

<XMLToJSON name="ConvertToJSON">
   <Source>response</Source>                     ---> INPUT
   <OutputVariable>response</OutputVariable>          OUTPUT --->
</XMLToJSON>

שינוי XML באמצעות XSL

אפשר להשתמש במדיניות XSLTransform כדי לבצע טרנספורמציה של הודעות באמצעות XSL. לדוגמה, אחרי המרה של מטען ייעודי (payload) בפורמט JSON ל-XML, אפשר להשתמש במדיניות XSL Transform עם גיליון סגנונות כדי לבצע את ההמרה שאתם צריכים.

בדוגמה הבאה למדיניות, המדיניות מקבלת הודעה בפורמט XML מהמשתנה response, ואז מחליפה את ערך המשתנה בהודעה בפורמט my_transform.xsl. הקלט מצוין ברכיב <Source>, והפלט מצוין ברכיב <OutputVariable>.

<XSL name="TransformXML">
  <Source>response</Source>                        ---> INPUT
  <ResourceURL>xsl://my_transform.xsl</ResourceURL>       --TRANSFORMER--
  <OutputVariable>response</OutputVariable>                            OUTPUT --->
</XSL>

טיפול בנתונים משתנים

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

חשוב לעיין בהפניות לשתי המדיניות הבאות:

יצירת טרנספורמציות מורכבות יותר

לטיפול בנתונים ברמת מורכבות שלא נכללת ביכולות של המדיניות, אפשר להשתמש בשפות פרוצדורליות כמו JavaScript,‏ Java או Python.

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