Sélectionner les champs à renvoyer

Lorsque vous appelez la méthode ComputeRoutes(), vous devez spécifier les champs que vous souhaitez renvoyer dans la réponse. Pour ce faire, utilisez un masque de champ de réponse, que vous fournissez avec le paramètre d'URL $fields ou fields, ou 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 d'accès de champs séparés par une virgule. Le chemin d'accès de chaque champ est une liste de noms de champs séparés par un point représentant la hiérarchie des messages. Un nom de champ correspond soit à la clé d'objet JSON, soit au nom du tag de champ protobuf. Le chemin d'accès du champ commence à partir du type de message de réponse de niveau supérieur et est éventuellement suivi d'un ou de plusieurs points, puis du niveau suivant du nom du champ. En général, les chemins d'accès de champ sont construits comme suit:

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

Un masque de champ de cas spécial est un caractère générique "*", qui sélectionne tous les champs au niveau de la 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 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

Nous vous déconseillons 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. En sélectionnant uniquement les champs dont vous avez besoin:

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

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

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

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