כשמפעילים את השיטה ComputeRoutes(), צריך לציין אילו שדות רוצים להחזיר בתגובה. כדי לעשות זאת, משתמשים במסכת שדות של תגובה, שמספקים עם פרמטר כתובת ה-URL $fields או fields, או באמצעות כותרת HTTP/gRPC X-Goog-FieldMask. מידע נוסף מופיע במאמר בנושא פרמטרים של המערכת.
מסיכת שדות
הערך של מסיכת השדה הוא רשימה מופרדת בפסיקים של נתיבי שדות. כל נתיב שדה הוא רשימה של שמות שדות שמופרדים באמצעות נקודה, שמייצגים את ההיררכיה של ההודעה. שם השדה הוא מפתח אובייקט ה-JSON או שם תג השדה של protobuf. נתיב השדה מתחיל מסוג הודעת התגובה ברמה העליונה, ואחריו יכולים להופיע נקודה אחת או יותר, ואז שם השדה ברמה הבאה. באופן כללי, נתיבי שדות בנויים כך:
topLevelField[.secondLevelField][.thirdLevelField][...]
מקרה מיוחד הוא מסיכת שדות עם התו הכללי לחיפוש '*', שבוחר את כל השדות ברמה הבסיסית (root).
דוגמאות
בדוגמה הבאה אפשר לראות איך מגדירים מסכות שדות לשיטה ComputeRoutes().
דוגמה 1
מסכת שדות של כל השדות הזמינים (לבדיקה ידנית).
X-Goog-FieldMask: *
דוגמה 2
מסכת שדות של משך, מרחק וקו פוליגוני ברמת המסלול (דוגמה להגדרת ייצור).
X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline
אנחנו לא ממליצים להשתמש בתו כללי לחיפוש (*) במסכת שדות של תשובה, או לציין את מסכת השדות ברמה העליונה (routes) בסביבת ייצור. בחירה רק של השדות שאתם צריכים:
התכונה הזו מאפשרת לשרת שלנו לחסוך מחזורי עיבוד, וכך אנחנו יכולים להחזיר לכם את התוצאות עם זמן אחזור נמוך יותר.
ההגדרה הזו מבטיחה ביצועים יציבים של זמן האחזור. יכול להיות שבעתיד נוסיף עוד שדות תגובה, והשדות החדשים האלה עשויים לדרוש זמן חישוב נוסף. אם תבחרו את כל השדות, או אם תבחרו את כל השדות ברמה העליונה, יכול להיות שתחוו ירידה בביצועים כי כל שדה חדש שנוסיף ייכלל אוטומטית בתשובה שלכם.
התוצאה היא גודל תגובה קטן יותר, שמתורגם לתפוקה גבוהה יותר של הרשת.
מידע נוסף על בניית נתיבי שדות זמין בקובץ field_mask.proto.