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

כרגע מוצג התיעוד של 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.

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