Scegli i campi da restituire

Quando chiami il pulsante Place Details (Novità), Ricerca nelle vicinanze (Nuova) oppure Ricerca testuale (novità), devi specificare quali campi devono essere restituiti nella risposta. Non esiste un elenco predefinito di campi restituiti. Se ometti questo elenco, i metodi restituiscono un errore.

Puoi specificare l'elenco dei campi creando una maschera del campo di risposta. Quindi passi la maschera del campo di risposta a entrambi i metodi utilizzando il parametro $fields oppure fields oppure utilizzando l'intestazione HTTP o gRPC X-Goog-FieldMask.

Il mascheramento dei campi è una buona pratica di progettazione per garantire di dati non necessari, così da evitare tempi di elaborazione e fatturazione superflui addebiti.

Definisci una maschera del campo di risposta

La maschera del campo di risposta è un elenco di percorsi separati da virgole, in cui ogni percorso specifica un campo univoco nel messaggio di risposta. Il percorso inizia messaggio di risposta di primo livello e utilizza un percorso separato da punti per il campo specificato.

Crea un percorso campo nel seguente modo:

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

Puoi richiedere tutti i campi utilizzando la maschera dei campi *.

Per ulteriori informazioni su come creare maschere dei campi, consulta field_mask.proto.

Determinare quali maschere dei campi utilizzare

Ecco come puoi determinare quali maschere di campi vuoi utilizzare:

  1. Richiedi tutti i campi utilizzando una maschera di campo "*".
  2. Osserva la gerarchia dei campi della risposta e determina campi desiderati.
  3. Crea la maschera dei campi utilizzando la gerarchia dei campi.

Definisci una maschera del campo di risposta per Ricerca nelle vicinanze (nuova) e Ricerca testuale (nuova)

Ricerca nelle vicinanze (novità) e La ricerca testuale (nuova) restituisce un array di oggetti Place in il campo places della risposta. Per queste API, places è il livello campo della risposta.

Ad esempio, per vedere l'oggetto risposta completa da un Ricerca testuale (novità):

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'

L'oggetto risposta completa da una ricerca testuale (novità) chiamata è nel formato:

{
  "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"
      },      ...
    },
  ...
  ]
}

Pertanto, specifichi una maschera dei campi per queste API nel formato:

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

Se vuoi restituire solo i campi formattedAddress e displayName, imposta la maschera del campo per:

places.formattedAddress,places.displayName

Se specifichi displayName, vengono inclusi entrambi i campi text e language di displayName. Se vuoi solo il campo text, imposta la maschera del campo come segue:

places.formattedAddress,places.displayName.text

Definisci una maschera del campo di risposta per Place Details (novità)

Place Details restituisce un singolo oggetto Place nel formato:

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

Di conseguenza, devi specificare una maschera del campo per questa API specificando i campi del l'oggetto Place che desideri restituire:

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

Chiamata gRPC

Per gRPC, imposta una variabile contenente la maschera del campo di risposta. Puoi quindi passare questa variabile alla richiesta.

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

Considerazioni sui percorsi dei campi

Includi nella risposta solo i campi di cui hai bisogno. Restituire soltanto il valore campi necessari:

  • Riduce i tempi di elaborazione, in modo che i risultati vengano restituiti con una una latenza di pochi millisecondi.
  • Garantisce prestazioni di latenza stabili se l'API aggiunge più campi di risposta. in futuro e questi nuovi campi richiederanno tempi di calcolo aggiuntivi. Se selezionare tutti i campi oppure tutti i campi del livello superiore, un peggioramento delle prestazioni quando tutti i nuovi campi incluso automaticamente nella risposta.
  • Risultati con risposte di dimensioni inferiori, che si traducono in una maggiore quantità di e la velocità effettiva effettiva.
  • Assicura di non richiedere dati non necessari, il che contribuisce a evitare inutili tempi di elaborazione e addebiti fatturati.