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

הדף הזה רלוונטי ל-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.

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