כשאתם קוראים לשיטות פרטי המקום (חדש), חיפוש בקרבת מקום (חדש) או חיפוש טקסט (חדש), עליכם לציין אילו שדות אתם רוצים שיוחזר בתגובה. אין רשימת ברירת מחדל של שדות שמוחזרים. אם משמיטים את הרשימה הזו, השיטות מחזירות שגיאה.
רשימה מלאה של שדות הנתונים הנתמכים והמק"טים התואמים להם מופיעה בקטע שדות נתונים של מקומות (חדש). מידע על שדות ספציפיים לכל API זמין במאמרים הבאים:
- פרמטרים של FieldMask של פרטי מקום (חדש)
- פרמטרים של FieldMask לחיפוש בקרבת מקום (חדש)
- פרמטרים של FieldMask לחיפוש טקסט (חדש)
כדי לציין את רשימת השדות, יוצרים מסכת שדה תגובה. לאחר מכן מעבירים את המסכה של שדה התגובה לשיטה באמצעות הפרמטר $fields
או fields
, או באמצעות הכותרת X-Goog-FieldMask
של HTTP או gRPC.
אנו ממליצים להשתמש בהסתרת שדות כדי לוודא שאתם לא מבקשים נתונים מיותרים, וכך להימנע מזמן עיבוד ומחיובים מיותרים.
הגדרת מסכה לשדה התגובה
מסכת שדות התגובה היא רשימה של נתיבים מופרדים בפסיקים, שבהם כל נתיב מציין שדה ייחודי בגוף התגובה. הנתיב מתחיל בהודעת התגובה ברמה העליונה ומשתמש בנתיב שמופרדים בנקודות לשדה שצוין.
יוצרים נתיב שדה באופן הבא:
topLevelField[.secondLevelField][.thirdLevelField][...]
אפשר לבקש את כל השדות באמצעות מסכת שדה של *
.
למידע נוסף על בניית מסכות שדות, ראו field_mask.proto.
איך קובעים באילו מסכות שדות להשתמש
כך קובעים באילו מסכות שדות רוצים להשתמש:
- מבקשים את כל השדות באמצעות מסכת שדה של
*
. - בודקים את היררכיית השדות בתגובה ומחליטים אילו שדות רוצים.
- יוצרים את מסכת השדות באמצעות היררכיית השדות.
הגדרת מסכה לשדה התגובה לחיפוש בקרבת מקום (חדש) ולחיפוש טקסט (חדש)
החיפוש בסביבה (חדש) והחיפוש בטקסט (חדש) מחזירים מערך של אובייקטים מסוג Place בשדה places
בתגובה. בממשקי ה-API האלה, השדה places
הוא השדה ברמת העליונה של התגובה.
לדוגמה, כדי לראות את אובייקט התשובה המלא מחיפוש טקסט (חדש):
curl -X POST -d '{ "textQuery" : "Spicy Vegetarian Food in Sydney, Australia" }' \ -H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \ -H 'X-Goog-FieldMask: *' \ 'https://places.googleapis.com/v1/places:searchText'
אובייקט התשובה המלא מהקריאה Text Search (New) הוא בפורמט הבא:
{ "places": [ { "name": "places/ChIJs5ydyTiuEmsR0fRSlU0C7k0", "id": "ChIJs5ydyTiuEmsR0fRSlU0C7k0", "types": [ "vegetarian_restaurant", "vegan_restaurant", "meal_takeaway", "restaurant", "food", "point_of_interest", "establishment" ], "nationalPhoneNumber": "0433 479 794", "internationalPhoneNumber": "+61 433 479 794", "formattedAddress": "29 King St, Sydney NSW 2000, Australia", "displayName": { "text": "Spiced @ Barangaroo", "languageCode": "en" }, ... }, ... ] }
לכן, צריך לציין מסכת שדה לממשקי ה-API האלה בפורמט:
places[.secondLevelField][.thirdLevelField][...]
אם רוצים להחזיר רק את השדות formattedAddress
ו-displayName
, צריך להגדיר את מסכת השדה כך:
places.formattedAddress,places.displayName
ציון displayName
כולל גם את השדות text
וגם את השדות language
של displayName
. אם רוצים להציג רק את השדה text
, מגדירים את מסכת השדה כך:
places.formattedAddress,places.displayName.text
הגדרת מסכה של שדה תגובה לפרטים של מקום (חדש)
הפונקציה PlaceDetails מחזירה אובייקט Place יחיד בפורמט הבא:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
לכן, כדי לציין מסכת שדות ל-API הזה, צריך לציין את השדות של אובייקט המקום שרוצים להחזיר:
curl -X GET -H 'Content-Type: application/json' \ -H "X-Goog-Api-Key: API_KEY" \ -H "X-Goog-FieldMask: formattedAddress,displayName" \ https://places.googleapis.com/v1/places/ChIJj61dQgK6j4AR4GeTYWZsKWw
קריאה ל-gRPC
ב-gRPC, מגדירים משתנה שמכיל את המסכה של שדה התגובה. לאחר מכן תוכלו להעביר את המשתנה הזה לבקשה.
const ( fieldMask = "places.formattedAddress,places.displayName" )
שיקולים לגבי נתיב השדה
יש לכלול בתגובה רק את השדות הנדרשים. החזרת רק את השדות הנחוצים:
- מקצרת את זמני העיבוד, כך שהתוצאות מוצגות עם זמן אחזור קצר יותר.
- מוודאים ביצועים יציבים של זמן אחזור אם בעתיד יתווספו לשדה ה-API עוד שדות תגובה, והשדות החדשים האלה ידרשו זמן חישוב נוסף. אם בוחרים את כל השדות, או אם בוחרים את כל השדות ברמה העליונה, יכול להיות שתבחינו בירידה בביצועים כשכל השדות החדשים ייכללו באופן אוטומטי בתגובה.
- התוצאה היא גודל תגובה קטן יותר, שמתבטא ביכולת העברת נתונים גבוהה יותר ברשת.
- מוודאים שלא מבקשים נתונים מיותרים, וכך חוסכים זמן עיבוד מיותר וחיובים מיותרים.