Lorsque vous appelez une méthode pour calculer une route ou une matrice de routage, 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.
Spécifiez la liste des champs en créant un masque de champ de réponse. Vous devez ensuite transmettre le masque de champ de réponse à chaque méthode à l'aide du paramètre d'URL $fields
ou fields
, ou de l'en-tête HTTP/gRPC X-Goog-FieldMask
.
Le masquage des champs est une bonne pratique de conception qui vous permet de ne pas demander de données inutiles, ce qui permet d'éviter des temps de traitement inutiles et des frais supplémentaires.
Pour en savoir plus sur les paramètres d'URL, consultez la page Paramètres système.
Définir un masque de champ de réponse
Le masque de champ de réponse est une liste de chemins séparés par une virgule, où chaque chemin spécifie un champ unique dans le message de réponse. Le chemin d'accès commence à partir du message de réponse de premier niveau et utilise un chemin séparé par des points vers le champ spécifié.
Les chemins d'accès aux champs sont construits de la manière suivante:
topLevelField[.secondLevelField][.thirdLevelField][...]
Pour les méthodes de routage des calculs, les chemins d'accès au champ spécifient:
Pour les méthodes de matrice de routage de calcul, les chemins d'accès de champ spécifient les champs de:
- REST: champs du corps de la réponse à renvoyer.
- gRPC: les champs de l'objet RouteMatrixElement dans la réponse à renvoyer.
Pour savoir comment créer des chemins d'accès de champ, consultez le fichier field_mask.proto.
Spécifier un chemin d'accès de champ
Cette section contient un exemple de spécification d'un chemin d'accès de champ dans le cadre d'un masque de champ de réponse.
Appel REST à computeRoutes
Dans le premier exemple, vous appelez la méthode computeRoutes
pour calculer une route. Dans cet exemple, vous spécifiez la valeur des champs Route.distanceMeters
et Route.duration
dans la réponse. N'oubliez pas d'ajouter le préfixe "routes.
" au nom du champ.
X-Goog-FieldMask: routes.distanceMeters,routes.duration
Appel REST à computeRouteMatrix
Pour la méthode REST computeRouteMatrix
utilisée pour calculer une matrice de routage, indiquez de renvoyer les originIndex
, destinationIndex
et duration
pour chaque combinaison point de départ-destination:
X-Goog-FieldMask: originIndex,destinationIndex,duration
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 = "routes.distanceMeters,routes.duration,routes.polyline.encodedPolyline" )
Remarques sur les chemins d'accès des champs
N'incluez que les champs requis dans la réponse. Ne renvoyer que les champs dont vous avez besoin:
Cela permet à notre serveur d'enregistrer des cycles de traitement, ce qui nous permet de renvoyer vos résultats avec une latence plus faible.
Garantit des performances stables en termes de latence. Il est possible que nous ajoutions d'autres champs de réponse à l'avenir. Ces nouveaux champs pourraient nécessiter un temps de calcul supplémentaire. Si vous sélectionnez tous les champs ou si vous sélectionnez tous les champs au niveau supérieur, vous risquez de constater une baisse des performances, car tout nouveau champ que nous ajouterons sera automatiquement inclus dans votre réponse.
La réponse est alors moins volumineuse, ce qui se traduit par un débit réseau plus élevé.
Assurez-vous de ne pas demander de données inutiles, ce qui permet d'éviter des délais de traitement inutiles et des frais de facturation.