Lorsque vous appelez la méthode Place Details (Nouveau), Nearby Search (Nouveau) ou Text Search (New), vous devez spécifier les champs à renvoyer dans la réponse. Il n'existe pas de liste par défaut. de champs renvoyés. Si vous omettez cette liste, les méthodes renvoient une erreur.
Pour spécifier la liste des champs, créez un masque de champ de réponse. Vous transmettez ensuite
masque de champ de réponse à l'une ou l'autre des méthodes en utilisant le paramètre $fields
ou
fields
, ou à l'aide de l'en-tête HTTP ou gRPC X-Goog-FieldMask
.
Le masquage du champ est une bonne pratique de conception pour vous assurer que vous ne demandez pas des données inutiles, ce qui permet d'éviter les délais de traitement et la facturation inutiles. frais.
Définir un masque de champ de réponse
Le masque de champ de réponse est une liste de chemins d'accès séparés par une virgule, où chaque chemin d'accès spécifie un champ unique dans le message de réponse. Le chemin commence par message de réponse de niveau supérieur et utilise un chemin d'accès au champ spécifié, séparé par un point.
Créez le chemin d'accès du champ comme suit:
topLevelField[.secondLevelField][.thirdLevelField][...]
Vous pouvez demander tous les champs à l'aide d'un masque de champ *
.
Pour en savoir plus sur la création de masques de champ, consultez les field_mask.proto.
Déterminer les masques de champ à utiliser
Voici comment déterminer les masques de champ que vous souhaitez utiliser:
- Demander tous les champs à l'aide d'un masque de champ "*".
- Examinez la hiérarchie des champs dans la réponse et déterminez les champs que vous souhaitez.
- Créez votre masque de champ à l'aide de la hiérarchie des champs.
Définir un masque de champ de réponse pour Nearby Search (nouveau) et Text Search (nouveau)
Nearby Search (nouveau) et
Text Search (nouvelle version) renvoie un tableau d'objets Place dans
dans le champ places
de la réponse. Pour ces API, places
est le niveau supérieur
de la réponse.
Par exemple, pour voir l'objet de réponse complet d'une Text Search (nouvelle version):
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'
Objet de réponse complet d'une recherche Text Search (nouvelle version) se présente sous la forme suivante:
{ "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" }, ... }, ... ] }
Par conséquent, vous spécifiez un masque de champ pour ces API au format suivant:
places[.secondLevelField][.thirdLevelField][...]
Si vous souhaitez renvoyer uniquement les champs formattedAddress
et displayName
, définissez
votre masque de champ pour:
places.formattedAddress,places.displayName
Spécifier displayName
inclut les champs text
et language
de
displayName
Si vous souhaitez uniquement le champ text
, définissez le masque de champ comme suit:
places.formattedAddress,places.displayName.text
Définir un masque de champ de réponse pour Place Details (nouveau)
Place Details renvoie un seul objet Place au format suivant:
{ "name": "places/ChIJkR8FdQNB0VQRm64T_lv1g1g", "id": "ChIJkR8FdQNB0VQRm64T_lv1g1g", "types": [ "locality", "political" ], "formattedAddress": "Trinidad, CA 95570, USA", "displayName": { "text": "Trinidad", "languageCode": "en" } ... }
Par conséquent, vous spécifiez un masque de champ pour cette API en spécifiant les champs de l'objet Place que vous souhaitez renvoyer:
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
Appel gRPC
Pour gRPC, définissez une variable contenant le masque de champ de réponse. Vous pouvez ensuite transmettre cette variable à la requête.
const ( fieldMask = "places.formattedAddress,places.displayName" )
Remarques concernant les chemins d'accès des champs
Incluez uniquement les champs dont vous avez besoin dans la réponse. Renvoyer uniquement les dont vous avez besoin:
- Réduit le temps de traitement, de sorte que vos résultats soient renvoyés avec un la latence.
- Garantit des performances de latence stables si l'API ajoute davantage de champs de réponse à l'avenir, et ces nouveaux champs nécessitent du temps de calcul supplémentaire. Si vous sélectionner tous les champs, ou si vous sélectionnez tous les champs au niveau supérieur, vous pouvez les performances se dégradent lorsque tous les nouveaux champs automatiquement inclus dans votre réponse.
- La taille de réponse est réduite, ce qui se traduit par une augmentation du volume de débit.
- Elle vous garantit de ne pas demander de données inutiles, ce qui permet d'éviter le temps de traitement et les frais facturés.