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

אתם מציגים את מסמכי התיעוד של Apigee Edge.
לעיון במאמרי העזרה של Apigee X.
מידע

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

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

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

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

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

‏Apigee Edge כולל כללי מדיניות שמקלים על ההמרה בין XML ל-JSON, ועל הטרנספורמציה של XML באמצעות XSL.

המרת JSON ל-XML

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

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

<JSONToXML name="jsontoxml">
     <Source>request</Source>
     <OutputVariable>request</OutputVariable>
</JSONToXML>

המרת XML ל-JSON

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

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

<XMLToJSON name="ConvertToJSON">
   <OutputVariable>response</OutputVariable>
   <Source>response</Source>
</XMLToJSON>

טרנספורמציה של XML באמצעות XSL

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

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

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

    <Source>request</Source>
    <ResourceURL>xsl://XSL-Transform-1.xsl</ResourceURL>
    <OutputVariable/>

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

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

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

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

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

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