Scegli i campi da restituire

Quando chiami i metodi Place Details (novità), Ricerca nelle vicinanze (novità) o Ricerca di testo (novità), devi specificare i campi da restituire nella risposta. Non esiste un elenco predefinito di campi restituiti. Se ometti questo elenco, i metodi restituiscono un errore.

Un elenco completo dei campi di dati supportati e dei relativi SKU è disponibile in Campi di dati dei luoghi (novità). Per informazioni sui campi specifici di ogni API, consulta quanto segue:

  • Parametri FieldMask di Places Details (nuovo)
  • Parametri FieldMask per la ricerca nelle vicinanze (nuova)
  • Parametri FieldMask per la ricerca di testo (nuova)

Specifica l'elenco di campi creando una maschera di campo di risposta. Poi, passa la maschera del campo di risposta a uno dei metodi utilizzando il parametro $fields o fields oppure l'intestazione HTTP o gRPC X-Goog-FieldMask.

Il mascheramento dei campi è una buona prassi di progettazione per assicurarti di non richiedere dati non necessari, il che consente di evitare tempi di elaborazione e costi di fatturazione non necessari.

Definire 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 corpo della risposta. Il percorso inizia dal messaggio di risposta di primo livello e utilizza un percorso separato da punti al campo specificato.

Costruisci un percorso del campo nel seguente modo:

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

Puoi richiedere tutti i campi utilizzando una maschera di campo *.

Per ulteriori informazioni su come creare maschere di campo, consulta field_mask.proto.

Determina quali maschere di campo utilizzare

Ecco come determinare le maschere di campo da utilizzare:

  1. Richiedi tutti i campi utilizzando una maschera di campo *.
  2. Esamina la gerarchia dei campi nella risposta e determina quali campi vuoi.
  3. Crea la maschera di campo utilizzando la gerarchia dei campi.

Definire una maschera per i campi di risposta per la Ricerca nelle vicinanze (novità) e la Ricerca di testo (novità)

La ricerca nelle vicinanze (novità) e la ricerca di testo (novità) restituiscono un array di oggetti Place nel campo places della risposta. Per queste API, places è il campo di primo livello della risposta.

Ad esempio, per visualizzare l'oggetto di risposta completo di una ricerca di testo (nuova):

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 di risposta completo di una chiamata di ricerca di testo (nuova) è nel seguente 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, specifica una maschera di campo per queste API nel seguente formato:

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

Se vuoi restituire solo i campi formattedAddress e displayName, imposta la maschera di campo su:

places.formattedAddress,places.displayName

La specifica di displayName include sia i campi text sia language di displayName. Se vuoi solo il campo text, imposta la maschera di campo come segue:

places.formattedAddress,places.displayName.text

Definire una maschera per i campi di risposta per i dettagli dei luoghi (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"
  }
  ...
}

Pertanto, specifica una maschera di campi per questa API specificando i campi dell'oggetto Place che vuoi 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 la variabile alla richiesta.

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

Considerazioni sul percorso del campo

Includi solo i campi necessari nella risposta. Restituisce solo i campi di cui hai bisogno:

  • Riduci i tempi di elaborazione, in modo che i risultati vengano restituiti con una latenza inferiore.
  • Garantisce prestazioni di latenza stabili se in futuro l'API aggiunge altri campi di risposta e questi nuovi campi richiedono tempi di calcolo aggiuntivi. Se selezioni tutti i campi o tutti i campi di primo livello, potresti riscontrare un calo del rendimento quando tutti i nuovi campi vengono inclusi automaticamente nella risposta.
  • Risulta in una dimensione di risposta più piccola, che si traduce in una maggiore velocità effettiva di rete.
  • Ti assicura di non richiedere dati non necessari, il che contribuisce a evitare tempi di elaborazione e addebiti non necessari.