מפתחים באזור הכלכלי האירופי (EEA)

בחירת שדות להחזרה

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

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

מציינים את רשימת השדות שרוצים לקבל במסכת שדות של תגובה. אחר כך מעבירים את מסכת שדות התגובה לאחת מהשיטות באמצעות פרמטר כתובת ה-URL $fields או fields, או באמצעות כותרת ה-HTTP או gRPC‏ X-Goog-FieldMask.

מידע נוסף על פרמטרים של כתובות URL זמין במאמר בנושא פרמטרים של המערכת.

הגדרת מסכת שדות של תגובה

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

יוצרים ומציינים נתיב שדה באופן הבא:

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

    routes.legs.distanceMeters,routes.legs.steps.duration
  4. שליחת מסכת השדות עם בקשת ה-API לדוגמה, בבקשת curl, מציינים את מסכת השדות באמצעות -H ו-X-Goog-FieldMask:

    -H X-Goog-FieldMask: routes.legs.distanceMeters,routes.legs.steps.duration
דוגמאות ופרטים נוספים מופיעים בסעיפים הבאים.

הפניות לשדות

כדי לראות את השדות שאפשר לבקש בתשובה באמצעות מסכות שדות, אפשר לעיין בהפניות ל-Compute Routes או ל-Compute Route Matrix של Routes API שמקושרות ברשימה הבאה. מציינים שדות בפורמט CamelCase כמו שמופיע בהפניה. לדוגמה, routePreference.

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

  • Compute route field mask
    • ‫REST: מציין את השדות של אובייקט Route בתגובה שיוחזרו, עם הקידומת routes., לדוגמה, routes.distanceMeters.
    • ‫gRPC: מציין את השדות של אובייקט Route בתגובה שיוחזרו.
  • Compute Route Matrix field masks

קובעים באילו מסכות שדות להשתמש

כך קובעים באילו שדות רוצים להשתמש ויוצרים את מסכות השדות שלהם:

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

    topLevelField[.secondLevelField][.thirdLevelField][...]

לדוגמה, לתגובה החלקית הזו ממסלול:

"routes": [
    {
        "legs": [
            {  "steps": [
                    {"distanceMeters": 119},
                    {"distanceMeters": 41}  ]
            }
        ],
        "distanceMeters": 160
    }
]

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

routes.legs.distanceMeters

אם רוצים להחזיר את השדה distanceMeters לכל שלב של קטע המסלול, כלומר את distanceMeters מתחת ל-steps בדוגמה הקודמת, מסכת השדות תהיה:

routes.legs.steps.distanceMeters

אם רוצים להחזיר את שניהם, עם התוצאה שלמעלה, מסכת השדות תהיה:

routes.legs.distanceMeters,routes.legs.steps.distanceMeters

דוגמאות לנתיבי אנונימיזציה של שדות

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

שיחת REST אל computeRoutes

בדוגמה הראשונה, נעשה שימוש בקריאת REST לשיטה computeRoutes כדי לחשב מסלול. בדוגמה הזו, בכותרת, מציינים מסכות שדות כדי להחזיר את השדות של המסלול distanceMeters ו-duration בתגובה. חשוב לזכור להוסיף את הקידומת routes לשם השדה.

X-Goog-FieldMask: routes.distanceMeters,routes.duration

שיחת REST אל computeRouteMatrix

ב-REST computeRouteMatrix, שיטת החישוב של מטריצת מסלולים, מציינים בכותרת את הערכים originIndex, destinationIndex ו-duration לכל שילוב של נקודת מוצא ויעד:

X-Goog-FieldMask: originIndex,destinationIndex,duration

קריאה ל-gRPC

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

const (
  fieldMask = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline"
)

שיקולים לגבי נתיב השדה

כדי לקבל בתגובה רק את השדות שאתם צריכים, כוללים רק את השדות שאתם רוצים:

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

מידע נוסף על יצירת מסכת שדות זמין במאמר field_mask.proto.