Wybierz pola do zwrócenia

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, gdzie każda ścieżka 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ć:

  1. Żądaj wszystkich pól, używając maski pola „*”.
  2. Przyjrzyj się hierarchii pól w odpowiedzi i ustal, co wybranych polach.
  3. 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.