Felder für die Rückgabe auswählen

Wenn Sie die Funktion Place Details (Neu), Nearby Search (Neu) oder Textsuche (New) verwenden, müssen Sie geben Sie an, welche Felder in der Antwort zurückgegeben werden sollen. Keine Standardliste vorhanden von zurückgegebenen Feldern. Wenn Sie diese Liste weglassen, geben die Methoden einen Fehler zurück.

Zum Angeben der Feldliste erstellen Sie eine Antwortfeldmaske. Sie bestehen dann die Antwortfeldmaske mithilfe des Parameters $fields oder fields oder mithilfe des HTTP- oder gRPC-Headers X-Goog-FieldMask.

Die Maskierung von Feldern ist sinnvoll, unnötige Daten, um unnötige Verarbeitungszeit und Kosten zu vermeiden. Gebühren.

Antwortfeldmaske definieren

Die Antwortfeldmaske ist eine durch Kommas getrennte Liste von Pfaden, in denen jeder Pfad gibt ein eindeutiges Feld in der Antwortnachricht an. Der Pfad beginnt an der Top-Level-Antwortnachricht und verwendet einen durch Punkte getrennten Pfad zum angegebenen Feld.

Erstellen Sie einen Feldpfad:

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

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

Weitere Informationen zum Erstellen von Feldmasken finden Sie in der field_mask.proto.

Bestimmen, welche Feldmasken verwendet werden sollen

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

  1. Fordert alle Felder mit einer Feldmaske von "*" an.
  2. Sehen Sie sich die Hierarchie der Felder in der Antwort an und legen Sie fest, die gewünschten Felder hinzu.
  3. Erstellen Sie Ihre Feldmaske mithilfe der Feldhierarchie.

Definieren Sie eine Antwortfeldmaske für Nearby Search (New) und Text Search (New)

Nearby Search (New) und „Text Search (New)“ gibt ein Array von „Place“-Objekten in Das Feld places der Antwort. Bei diesen APIs ist places die oberste Ebene. der Antwort ein.

Um beispielsweise das vollständige Antwortobjekt einer „Text Search“ (Neu):

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 aus „Text Search (New)“ -Aufruf 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 im folgenden Format an:

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

Wenn nur die Felder formattedAddress und displayName zurückgegeben werden sollen, legen Sie Feldmaske auf:

places.formattedAddress,places.displayName

Wenn Sie displayName angeben, sind die Felder text und language von displayName Wenn Sie nur das Feld text haben möchten, legen Sie die Feldmaske so fest:

places.formattedAddress,places.displayName.text

Antwortfeldmaske für „Place Details“ definieren (Neu)

„Place Details“ gibt ein einzelnes „Place“-Objekt im folgenden 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 von das Place-Objekt, das Sie zurückgeben möchten:

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. Sie können dann der Anfrage hinzufügen.

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

Überlegungen zu Feldpfaden

Nehmen Sie nur die erforderlichen Felder in die Antwort auf. Wenn Sie nur die die Sie benötigen:

  • Verringert die Verarbeitungszeiten, sodass Ihre Ergebnisse mit einer kürzeren Latenz.
  • Sorgt für stabile Latenzzeiten, falls die API weitere Antwortfelder hinzufügt und diese neuen Felder erfordern zusätzliche Rechenzeit. Wenn Sie oder alle Felder auf der obersten Ebene auswählen, verschlechtert sich, wenn alle neuen Felder automatisch in Ihrer Antwort enthalten.
  • Ergibt eine kleinere Antwortgröße, was zu einem größeren Netzwerk führt. Durchsatz.
  • sorgt dafür, dass keine unnötigen Daten angefordert werden, wodurch unnötige Verarbeitungszeit und in Rechnung gestellte Kosten.