טיפול במטענים ייעודיים (payloads) של JSON כמחרוזות במשימה של מחברי HTTP

במדריך הזה נסביר איך לטפל במטענים ייעודיים (payloads) בפורמט JSON כשמשתמשים במשימה HTTP Connectors ב-Application Integration.

טיפול שגוי במטען הייעודי עלול לגרום ל-API לפרש אותו בצורה שגויה, וכתוצאה מכך להחזיר שגיאות 400 Bad Request. כדי לוודא שממשקי ה-API מקבלים ומנתחים את מטען ה-JSON הייעודי (payload) בצורה נכונה, צריך להתייחס למטען ה-JSON הייעודי כמחרוזת ולהגדיר במפורש את הכותרת Content-Type לערך application/json.

לפני שמתחילים

  • מוודאים שיש לכם גישה אל Application Integration (שילוב אפליקציות).
  • בוחרים את Google Cloud הפרויקט ומבצעים את המשימות הבאות:

    • מקצים לחשבון השירות שרוצים להשתמש בו כדי ליצור את החיבור את התפקידים הבאים:
      • roles/secretmanager.viewer
      • roles/secretmanager.secretAccessor
    • מפעילים את השירותים הבאים:
      • secretmanager.googleapis.com (Secret Manager API)
      • connectors.googleapis.com (Connectors API)

      אם לא הפעלתם את השירותים האלה בפרויקט, בדף Create Connection (יצירת חיבור) תופיע בקשה להפעיל אותם כשתיצרו את החיבור.

  • מוסיפים ומגדירים משימה של HTTP Connectors.
  • מוסיפים ומגדירים את המשימה Data Transformer כדי להכין את מטען ה-JSON הייעודי ואת הכותרות.

טיפול במטענים ייעודיים (payloads) של JSON כמחרוזות

כדי לטפל במטענים ייעודיים (payloads) בפורמט JSON שמכילים תווים מיוחדים כשמשתמשים במשימה של HTTP Connectors, צריך לבצע את השלבים הבאים:

יוצרים משתנה מחרוזת למטען הייעודי (payload) של JSON

  1. נכנסים לדף Application Integration במסוף Google Cloud .

    מעבר אל Application Integration

  2. בתפריט הניווט, לוחצים על Integrations (שילובים).
  3. בוחרים שילוב קיים או יוצרים שילוב חדש. מוודאים שהשילוב כולל את המשימות המוגדרות HTTP Connectors ו-Data Transformer, כפי שמפורט בקטע לפני שמתחילים.
  4. בעורך השילובים, לוחצים על יצירה כדי לפתוח את תיבת הדו-שיח יצירת משתנה.
  5. בתיבת הדו-שיח יצירת משתנה:
    1. מזינים את הפרטים הבאים:
      1. שם: מזינים שם, לדוגמה, jsonPayloadString.
      2. סוג הנתונים: בוחרים באפשרות מחרוזת.
      3. ערך ברירת המחדל:
        • אם מטען ה-JSON הייעודי (payload) מאוכלס על ידי משימה קודמת בתהליך השילוב, למשל משימה אחרת של Data Transformer, משאירים את השדה הזה ריק. המשתנה יאוכלס באופן דינמי על סמך הפלט של משימות קודמות בשילוב.
        • אם מטען ה-JSON הייעודי לא מאוכלס על ידי משימה קודמת, צריך לספק מטען JSON ייעודי סטטי שמוגדר כברירת מחדל. מזינים את מבנה ה-JSON כמחרוזת אחת בשדה הזה.

          הנה שתי דוגמאות לאופן שבו מזינים מחרוזות JSON בשדה ערך ברירת מחדל:

          ללא תווים מיוחדים: כדי לייצג את ה-JSON {"name": "Developer", "key": "test"}, צריך להזין בדיוק: { "name": "Developer", "key": "test" }.

          עם תווים מיוחדים: אם קובץ ה-JSON מכיל תווים מיוחדים כמו שורה חדשה (\n), צריך להשתמש בתו בריחה כדי לסמן אותם. לדוגמה, כדי לייצג את ה-JSON {"key": "value1\nvalue2"}, מזינים {"key": "value1\\nvalue2"} בשדה.

    2. לוחצים על יצירה.
    יוצרים משתנה מחרוזת למטען הייעודי (payload) של JSON
  6. מידע נוסף על יצירה ושימוש במשתנים זמין במאמר משתנים.

מיפוי של משתנה המחרוזת לגוף הקלט של המחבר

בכלי לעריכת טרנספורמציה של נתונים, ממפים את המשתנה jsonPayloadString לשדה connectorInputPayload.Body.

  1. באינטגרציה, מוסיפים משימה של Data Transformer.
  2. פותחים את הכלי לעריכת טרנספורמציות של נתונים. אפשר להשתמש במצב דיאגרמה או במצב סקריפט.
  3. כדי למפות את המשתנה:
    • מצב דיאגרמה: מוסיפים את jsonPayloadString כקלט וממפים אותו לשדה הפלט connectorInputPayload.Body.
    • מצב סקריפט: כותבים קוד Jsonnet כדי להקצות את הערך: connectorInputPayload.Body = vars.jsonPayloadString;.

הוספת כותרת Content-Type בהתאמה אישית

  1. בכלי לעריכת טרנספורמציות של נתונים, מוסיפים מיפוי של כותרות מותאמות אישית לשדה connectorInputPayload.Headers.
    • מצב דיאגרמה: מוסיפים קלט קבוע עם הערך {"Content-Type": "application/json"} וממפים אותו אל connectorInputPayload.Headers.
    • מצב סקריפט: מוסיפים את ה-Jsonnet הבא כדי להגדיר את הכותרת:
      connectorInputPayload.Headers = {
        "Content-Type": "application/json"
      };
              

הפעלת המשימה HTTP Connectors

לפני שמבצעים את השילוב, צריך לוודא שהמשתנה connectorInputPayload.Body מאוכלס על ידי המשתנה jsonPayloadString ושהמשתנה connectorInputPayload.Headers כולל את הכותרת Content-Type: application/json. ההגדרה הזו מבטיחה שמשימת HTTP Connectors תשלח את מטען ה-JSON הייעודי כמחרוזת עם Content-Type הנכון במשימת Data Transformer.

מריצים את השילוב כדי לבדוק את בקשת ה-API. אם ה-API מחזיר שגיאה 400 Bad Request, צריך לאמת שוב את המיפויים של connectorInputPayload.Body ושל connectorInputPayload.Headers במשימה Data Transformer.

המאמרים הבאים

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