Introduzione
Quando chiami i metodi Place Details (New), Nearby Search (New), o Ricerca testuale (New), devi specificare i campi che vuoi vengano restituiti 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 (New). Per informazioni sui campi specifici di ogni API, consulta:
- Parametri FieldMask di Place Details (New)
- Parametri FieldMask di Nearby Search (New)
- Parametri FieldMask di Ricerca testuale (New) FieldMask
Specifica l'elenco dei campi creando una maschera di campo della risposta. Poi passi
la maschera di campo della risposta a uno dei due metodi utilizzando il parametro $fields o
fields oppure l'intestazione HTTP o gRPC X-Goog-FieldMask.
L'applicazione di maschere di campo è una buona pratica di progettazione per assicurarti di non richiedere dati non necessari, il che aiuta a evitare tempi di elaborazione e addebiti non necessari.
Definire una maschera di campo della risposta
La maschera di campo della 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.
Crea un percorso di campo nel modo seguente:
topLevelField[.secondLevelField][.thirdLevelField][...]
Puoi richiedere tutti i campi utilizzando una maschera di campo *.
Per saperne di più su come creare maschere di campo, consulta il field_mask.proto.
Determinare le maschere di campo da utilizzare
Ecco come puoi determinare le maschere di campo da utilizzare:
- Richiedi tutti i campi utilizzando una maschera di campo
*. - Esamina la gerarchia dei campi nella risposta e determina i campi che ti interessano.
- Crea la maschera di campo utilizzando la gerarchia dei campi.
Definire una maschera di campo della risposta per Nearby Search (New) e Ricerca testuale (New)
Nearby Search (New) e Ricerca testuale (New) 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 testuale (New):
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 testuale (New) ha il 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, per queste API devi specificare una maschera di campo 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 di campo della risposta per Place Details (New)
Place Details (New) restituisce un singolo oggetto Place nel seguente formato:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
Pertanto, per questa API devi specificare una maschera di campo 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 di campo della risposta. Poi puoi passare questa variabile alla richiesta.
const ( fieldMask = "places.formattedAddress,places.displayName" )
Considerazioni sui percorsi dei campi
Includi nella risposta solo i campi necessari. Restituire solo i campi necessari:
- Riduce i tempi di elaborazione, quindi i risultati vengono 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 peggioramento delle prestazioni quando tutti i nuovi campi vengono inclusi automaticamente nella risposta.
- Comporta una dimensione della risposta inferiore, il che si traduce in una maggiore velocità di trasmissione della rete.
- Garantisce di non richiedere dati non necessari, il che aiuta a evitare tempi di elaborazione e addebiti non necessari.