Felder für die Rückgabe auswählen

Wenn Sie die Methoden Place Details (New), Nearby Search (New) oder Text Search (New) aufrufen, müssen Sie angeben, welche Felder in der Antwort zurückgegeben werden sollen. Es gibt keine Standardliste der zurückgegebenen Felder. Wenn Sie diese Liste auslassen, geben die Methoden einen Fehler zurück.

Zum Angeben der Feldliste erstellen Sie eine Antwortfeldmaske. Anschließend übergeben Sie die Antwortfeldmaske über den Parameter $fields oder fields oder den HTTP- oder gRPC-Header X-Goog-FieldMask an eine der beiden Methoden.

Die Maskierung von Feldern hat sich bewährt, um dafür zu sorgen, dass keine unnötigen Daten angefordert werden. So lassen sich unnötige Verarbeitungszeiten und Gebühren vermeiden.

Antwortfeldmaske definieren

Die Antwortfeldmaske ist eine durch Kommas getrennte Liste von Pfaden, wobei jeder Pfad ein eindeutiges Feld in der Antwortnachricht angibt. Der Pfad beginnt bei der Antwortnachricht der obersten Ebene und verwendet einen durch Punkte getrennten Pfad zum angegebenen Feld.

Konstruieren Sie einen Feldpfad wie folgt:

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

Sie können alle Felder mit der Feldmaske * anfordern.

Weitere Informationen zum Erstellen von Feldmasken finden Sie unter field_mask.proto.

Bestimmen, welche Feldmasken verwendet werden

So legen Sie fest, welche Feldmasken Sie verwenden möchten:

  1. Fordert alle Felder mit der Feldmaske „*“ an.
  2. Sehen Sie sich die Hierarchie der Felder in der Antwort an und legen Sie die gewünschten Felder fest.
  3. Erstellen Sie die Feldmaske mithilfe der Feldhierarchie.

Antwortfeldmaske für „Nearby Search (New)“ und „Text Search (New)“ definieren

„Nearby Search (New)“ und „Text Search (New)“ geben ein Array von Place-Objekten im Feld places der Antwort zurück. Bei diesen APIs ist places das Feld der obersten Ebene der Antwort.

So können Sie beispielsweise das vollständige Antwortobjekt aus einer „Text Search (New)“ anzeigen lassen:

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'

Das vollständige Antwortobjekt eines „Text Search (New)“-Aufrufs hat das folgende 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"
      },      ...
    },
  ...
  ]
}

Daher geben Sie eine Feldmaske für diese APIs in folgendem Format an:

places[.secondLevelField][.thirdLevelField][...]

Wenn Sie nur die Felder formattedAddress und displayName zurückgeben möchten, legen Sie die Feldmaske so fest:

places.formattedAddress,places.displayName

Wenn Sie displayName angeben, werden die Felder text und language von displayName einbezogen. Wenn Sie nur das Feld text verwenden möchten, legen Sie die Feldmaske so fest:

places.formattedAddress,places.displayName.text

Antwortfeldmaske für Place Details (Neu) definieren

„Place Details“ gibt ein einzelnes Place-Objekt in folgendem Format zurück:

{
  "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g",
  "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g",
  "types": [
    "locality",
    "political"
  ],
  "formattedAddress": "Trinidad, CA 95570, USA",
  "displayName": {
    "text": "Trinidad",
    "languageCode": "en"
  }
  ...
}

Daher geben Sie eine Feldmaske für diese API an, indem Sie die Felder des Place-Objekts angeben, die zurückgegeben werden sollen:

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-Aufruf

Legen Sie für gRPC eine Variable fest, die die Antwortfeldmaske enthält. Diese Variable können Sie dann an die Anfrage übergeben.

const (
  fieldMask = "places.formattedAddress,places.displayName"
)

Überlegungen zu Feldpfaden

Geben Sie nur die Felder an, die in der Antwort erforderlich sind. Geben Sie nur die Felder zurück, die Sie benötigen:

  • Verringert die Verarbeitungszeiten, sodass die Ergebnisse mit einer geringeren Latenz zurückgegeben werden.
  • Sorgt für eine stabile Latenzleistung, wenn die API in Zukunft weitere Antwortfelder hinzufügt und diese neuen Felder zusätzliche Rechenzeit erfordern. Wenn Sie alle Felder oder alle Felder auf der obersten Ebene auswählen, kann es zu Leistungseinbußen kommen, wenn alle neuen Felder automatisch in Ihre Antwort aufgenommen werden.
  • Dies führt zu einer geringeren Antwortgröße, was zu einem höheren Netzwerkdurchsatz führt.
  • Es wird sichergestellt, dass keine unnötigen Daten angefordert werden. So vermeiden Sie unnötige Verarbeitungszeiten und in Rechnung gestellte Kosten.