Po wywołaniu Szczegóły miejsca (Nowe), Wyszukiwanie w pobliżu (Nowy) lub Wyszukaj tekst (nowych), musisz określ pola, które mają być zwracane w odpowiedzi. Brak domyślnej listy zwróconych pól. Jeśli pominiesz tę listę, metody zwrócą błąd.
Listę pól określasz przez utworzenie maski pola odpowiedzi. Następnie przechodzisz
maski pola odpowiedzi do dowolnej z tych metod za pomocą parametru $fields
lub
fields
albo przy użyciu nagłówka HTTP lub gRPC X-Goog-FieldMask
.
Dobrą metodą projektowania jest maskowanie pól, dzięki którym zbędnych danych, które pozwalają uniknąć niepotrzebnego czasu przetwarzania i rozliczeń opłaty.
Zdefiniuj maskę pola odpowiedzi
Maska pola odpowiedzi to rozdzielana przecinkami lista ścieżek, z których każda określa unikalne pole w wiadomości odpowiedzi. Ścieżka zaczyna się od z odpowiedzią najwyższego poziomu ze ścieżką do określonego pola rozdzielaną kropkami.
Utwórz ścieżkę pola w ten sposób:
topLevelField[.secondLevelField][.thirdLevelField][...]
Możesz zażądać wszystkich pól, używając maski pola *
.
Więcej informacji o tworzeniu masek pól znajdziesz w artykule field_mask.proto.
Określenie, których masek pól należy użyć
Oto jak możesz określić, których masek pól chcesz użyć:
- Żądaj wszystkich pól, używając maski pola „*”.
- Przyjrzyj się hierarchii pól w odpowiedzi i ustal, co wybranych polach.
- Utwórz maskę pola, korzystając z hierarchii pól.
Definiowanie maski pola odpowiedzi na potrzeby wyszukiwania w pobliżu (nowość) i wyszukiwania tekstowego (nowego)
Wyszukiwanie w pobliżu (nowość) i
Wyszukiwanie tekstowe (nowość) zwraca tablicę obiektów Place w
pole places
odpowiedzi. W przypadku tych interfejsów API places
jest najwyższym poziomem
odpowiedzi.
Aby na przykład zobaczyć pełny obiekt odpowiedzi z Wyszukiwanie tekstowe (nowość):
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'
Kompletny obiekt odpowiedzi z wyszukiwania tekstowego (nowość) ma format:
{ "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" }, ... }, ... ] }
W związku z tym określasz maskę pola dla tych interfejsów API w postaci:
places[.secondLevelField][.thirdLevelField][...]
Jeśli chcesz zwrócić tylko pola formattedAddress
i displayName
, ustaw
maskę pola na:
places.formattedAddress,places.displayName
Określenie displayName
uwzględnia zarówno pola text
, jak i language
w przypadku
displayName
Jeśli potrzebujesz tylko pola text
, ustaw maskę pola na:
places.formattedAddress,places.displayName.text
Zdefiniuj maskę pola odpowiedzi dla szczegółów miejsca (nowość)
Szczegóły miejsca zwraca jeden obiekt Place w formularzu:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
W związku z tym należy określić maskę pola dla tego interfejsu API, określając pola obiekt Place, który chcesz zwrócić:
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
Wywołanie gRPC
W przypadku gRPC ustaw zmienną zawierającą maskę pola odpowiedzi. Następnie możesz tę zmienną do żądania.
const ( fieldMask = "places.formattedAddress,places.displayName" )
Uwagi na temat ścieżek pól
Uwzględnij w odpowiedzi tylko te pola, które potrzebujesz. Zwracanie tylko Potrzebne pola:
- Skraca czas przetwarzania, więc wyniki są zwracane z niższą opóźnienia.
- Zapewnia stabilne działanie opóźnienia, jeśli interfejs API dodaje więcej pól odpowiedzi. a te nowe pola wymagają dodatkowego czasu na obliczenia. Jeśli zaznacz wszystkie pola. Jeżeli wybierzesz wszystkie pola na najwyższym poziomie, pogorszenie wydajności, gdy wszystkie nowe pola są automatycznie uwzględnione w odpowiedzi.
- Mniejszy rozmiar odpowiedzi przekłada się na większe wykorzystanie sieci i przepustowości.
- Nie żądasz zbędnych danych, co pozwala uniknąć niepotrzebnego czasu przetwarzania i rozliczonych opłat.