Sélectionner les champs à renvoyer

Lorsque vous appelez la méthode ComputeRoutes(), vous devez spécifier les champs que vous souhaitez voir renvoyés dans la réponse. Pour ce faire, vous devez utiliser un masque de champ de réponse que vous fournissez avec le paramètre d'URL $fields ou fields, ou en utilisant l'en-tête HTTP/gRPC X-Goog-FieldMask. Pour en savoir plus, consultez Paramètres système.

Masque de champ

La valeur du masque de champ est une liste de chemins de champ séparés par une virgule. Chaque chemin de champ est une liste de noms de champs séparés par un point, qui représentent la hiérarchie des messages. Un nom de champ correspond à la clé de l'objet JSON ou au nom de balise du champ protobuf. Le chemin d'accès au champ commence par le type de message de réponse de premier niveau, et est éventuellement suivi d'un ou plusieurs points, puis du nom de champ du niveau suivant. En règle générale, les chemins de champ sont construits de la manière suivante :

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

Un masque de champ spécial est un caractère générique "*", qui sélectionne tous les champs de niveau racine.

Exemples

L'exemple suivant montre comment définir des masques de champ pour la méthode ComputeRoutes().

Exemple 1

Masque de champ de tous les champs disponibles (pour l'inspection manuelle).

X-Goog-FieldMask: *

Exemple 2

Masque de champ de la durée, de la distance et de la polyligne au niveau de l'itinéraire (exemple de configuration de production).

X-Goog-FieldMask: routes.duration,routes.distanceMeters,routes.polyline

Nous vous déconseillons d'utiliser le masque de champ de réponse générique (*) ou de spécifier le masque de champ au niveau supérieur (routes) en production. Sélectionnez uniquement les champs dont vous avez besoin :

  • Cela permet à notre serveur d'économiser des cycles de traitement, ce qui nous permet de vous renvoyer vos résultats avec une latence plus faible.

  • Garantit des performances de latence stables. Nous pourrons ajouter d'autres champs de réponse à l'avenir, et ces nouveaux champs pourront nécessiter un temps de calcul supplémentaire. Si vous sélectionnez tous les champs ou tous les champs au niveau supérieur, les performances peuvent se dégrader, car tout nouveau champ que nous ajoutons sera automatiquement inclus dans votre réponse.

  • Cela permet de réduire la taille de la réponse, ce qui se traduit par un débit réseau plus élevé.

Pour en savoir plus sur la création de chemins de champ, consultez field_mask.proto.