Sélectionner les champs à renvoyer

Lorsque vous appelez la méthode ComputeRoutes(), vous devez spécifier les champs que vous que vous souhaitez afficher dans la réponse. Pour ce faire, vous utilisez un masque de champ de réponse, que vous fournissez avec le paramètre d'URL $fields ou fields, ou en utilisant 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 d'accès de champs séparés par une virgule. Chemin d'accès à chaque champ est une liste de noms de champs séparés par un point qui représente la hiérarchie des messages. A nom du champ est soit la clé de l'objet JSON, soit le nom du tag de champ protobuf. La le chemin d'accès du champ commence par le type de message de réponse de niveau supérieur et est facultatif suivi d'un ou de plusieurs points, puis du niveau suivant du nom du champ. En général, les chemins d'accès aux champs sont construits de la manière suivante:

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

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

Exemples

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

Exemple 1

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

X-Goog-FieldMask: *

Exemple 2

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

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

Il est déconseillé d'utiliser le masque de champ de réponse avec un caractère générique (*) ou de spécifier le masque de champ au niveau supérieur (routes) en production. Il vous suffit de sélectionner dont vous avez besoin:

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

  • Garantit des performances de latence stables. Nous pouvons ajouter d'autres champs de réponse dans et ces nouveaux champs peuvent nécessiter un temps de calcul supplémentaire. Si vous sélectionnez tous les champs. Si vous sélectionnez tous les champs au niveau supérieur, vous risquez de rencontrer dégradation des performances. En effet, tout nouveau champ ajouté sera automatiquement incluses dans votre réponse.

  • La taille de réponse est réduite, ce qui se traduit par un débit réseau plus élevé débit.

Pour en savoir plus sur la création de chemins d'accès à des champs, consultez la field_mask.proto.