שלב 5: הוספת מדיניות

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

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

אחרי שמשנים את נקודת הקצה לטירגוט, אפשר להוסיף מדיניות לשרת ה-proxy.

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

במדריך הזה תוסיפו את מדיניות XMLtoJSON לשרת ה-proxy. המדיניות הזו ממירה את מטען הייעודי (payload) של הודעת XML ל-JSON. היא גם משנה את הכותרת Content-Type של התגובה.

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

הוספת המדיניות

מוסיפים את מדיניות XMLtoJSON לשרת ה-proxy.

כדי להוסיף את מדיניות XMLtoJSON לשרת ה-proxy, צריך לבצע שני שלבים:

יצירת מופע של המדיניות

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

  1. במסוף Google Cloud , נכנסים לדף Apigee > Proxy development > API proxies.

    מעבר לשרתי proxy ל-API

  2. ברשימת השרתים הפרוקסי, בוחרים את השרת הפרוקסי שרוצים להוסיף לו את המדיניות.
  3. לוחצים על הכרטיסייה פיתוח.

  4. בחלונית הימנית, לוחצים על הלחצן + לצד התיקייה מדיניות.
  5. בתיבת הדו-שיח Create policy, בוחרים באפשרות Standard policies כדי לסנן את רשימת המדיניות לפי סוג המדיניות.
  6. בתיבת הטקסט Select policy type, גוללים למטה אל Mediation ובוחרים באפשרות XML To JSON.

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

    תיבת הדו-שיח ליצירת מדיניות.

    בסיום, לוחצים על יצירה כדי ליצור את המדיניות.

מדיניות XML To JSON מוצגת עכשיו בחלונית השמאלית בתצוגה Develop:

מדיניות XML To JSON מוצגת בתצוגה Develop.

בחלק התחתון של החלונית מוצג קוד ה-XML של המדיניות.

כדי לקבל מידע נוסף על המדיניות, לוחצים על סמל המידע סמל המידע. לצד שם המדיניות ואז על מדיניות XML ל-JSON. יוצג דף העזר של המדיניות.

איך משתמשים ב-Gemini Code Assist כדי לבדוק הוראות מדיניות

אתם יכולים להשתמש בממשק המשתמש של Gemini Code Assist כדי לקבל מידע על רכיבי מדיניות. מידע נוסף זמין במאמר בנושא שימוש ב-Gemini Code Assist להסבר על קוד עם מדיניות.

שינוי שם המדיניות

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

  1. בחלונית הימנית, בוחרים את המדיניות בקטע Policies (מדיניות).
  2. ברכיב <DisplayName> בקוד ה-XML של המדיניות, מוסיפים ביטוי תיאורי למדיניות, כמו change-xml-to-json, אחרי הקיצור של שם המדיניות:

    מוסיפים את השם change-xml-to-json למדיניות.

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

    מוסכמות למתן שמות

צירוף המדיניות לשלב ב-PreFlow

אחרי שיצרתם את מדיניות XML To JSON, אתם יכולים לצרף אותה לשלב ב-PreFlow:

  1. בחלונית הימנית, בוחרים באפשרות Proxy Endpoints > default > PreFlow:

    בוחרים נקודות קצה של יעד ל-PreFlow בסייר ה-Proxy.

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

  2. לוחצים על הלחצן + לצד PreFlow בחלונית Response בפינה השמאלית התחתונה של כלי העריכה החזותי:

    לוחצים על הלחצן + לצד PreFlow בחלונית Response.

  3. בתיבת הדו-שיח Add policy step (הוספת שלב מדיניות), בוחרים במדיניות X2J-change-xml-to-json.
  4. לוחצים על הוספה כדי לצרף את המדיניות.

    המדיניות X2J-change-xml-to-json מוצגת עכשיו בחלונית Response:

    מדיניות XML ל-JSON מוצגת בחלונית Response (תגובה).

  5. לוחצים על שמירה כדי לשמור את השינויים בגרסה הנוכחית.
  6. כדי לפרוס את השינויים בגרסה, לוחצים על Deploy (פריסה) ופועלים לפי ההוראות במאמר פריסת proxy ל-API.

בדיקת המדיניות החדשה

כדי לבדוק את המדיניות החדשה, מריצים את הפקודה curl הבאה בחלון המסוף:

curl https://YOUR_ENV_GROUP_HOSTNAME/myproxy

כאשר YOUR ENV_GROUP_HOSTNAME הוא שם המארח של קבוצת הסביבות. אפשר לעיין במאמר בנושא איתור שם המארח של קבוצת הסביבות.

מידע נוסף זמין במאמר קריאה ל-proxy ל-API.

אפשר גם לפתוח את אותה כתובת URL בדפדפן.

אמורה להתקבל התגובה הבאה:

{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

אם גוף התגובה לא נראה כמו הדוגמה הבאה, צריך לבדוק את הדברים הבאים:

  1. נקודת הקצה (endpoint) של היעד היא https://mocktarget.apigee.net/xml, כפי שמתואר ב שלב 4: שינוי נקודת הקצה של היעד:
    • אם מקבלים את התשובה Hello, Guest!, צריך להוסיף את /xml לסוף נקודת הקצה של היעד.
    • אם מופיעה הודעת השגיאה 404, צריך לוודא שאתם ניגשים אל apigee.net ולא אל apigee.com.
  2. הגרסה האחרונה של ה-proxy שלך נפרסה. נסו לפרוס מחדש את שרת ה-proxy ל-API כמו שמתואר במאמרים פריסת שרת proxy ל-API וביטול הפריסה של שרת proxy ל-API.

כדי לראות את כותרות הבקשה והתגובה של HTTP, מפעילים את האפשרות verbosity ב-curl באמצעות האפשרות -vs (v הופכת את התגובה למפורטת, אבל s מסתירה חלק מהפרטים הפחות מעניינים). בדוגמה הבאה מניחים ששם ה-proxy הוא myproxy::

curl -vs https://YOUR_ENV_GROUP_HOSTNAME/myproxy  | python -m json.tool

אמורה להתקבל תגובה שדומה לזו: שימו לב שהכותרת Content-Type בתגובה היא application/json. המדיניות XMLtoJSON משנה את הכותרת לפני שהיא שולחת את התגובה בחזרה.

*   Trying 10.20.30.40...
* TCP_NODELAY set
* Connected to apitest.acme.com (10.20.30.40) port 443 (#0)
...
> GET /myproxy HTTP/1.1
> Host: apitest.acme.com
> User-Agent: curl/7.58.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Date: Fri, 25 May 2018 16:20:00 GMT
< Content-Type: application/json;charset=UTF-8
< Content-Length: 77
< Connection: keep-alive
< X-Powered-By: Apigee
< Access-Control-Allow-Origin: *
...
{ [77 bytes data]
{
  "root": {
    "city": "San Jose",
    "firstName": "John",
    "lastName": "Doe",
    "state": "CA"
  }
}

השלב הבא

מידע נוסף