Points de terminaison synchrones et asynchrones

Développeurs de l'Espace économique européen (EEE)

L'API Route Optimization expose deux méthodes :

  • OptimizeTours est une méthode synchrone qui renvoie un itinéraire optimisé en réponse à une OptimizeToursRequest. Les clients doivent maintenir une connexion ouverte à l'API Route Optimization jusqu'à ce que la requête soit traitée et qu'une OptimizeToursResponse ou une erreur soit renvoyée.
  • BatchOptimizeTours est une méthode asynchrone qui accepte les URI d'un ou de plusieurs messages OptimizeToursRequest et OptimizeToursResponse correspondants, et renvoie le nom de ressource d'une opération de longue durée (LRO) (REST, gRPC) utilisée pour vérifier l'état d'achèvement du lot. Les OptimizeToursRequest sont traitées en arrière-plan. Les clients ne maintiennent donc une connexion ouverte à l'API Route Optimization que le temps nécessaire pour envoyer la BatchOptimizeToursRequest ou pour appeler GetOperation afin de vérifier l'état de la LRO . BatchOptimizeTours lit les requêtes et écrit les réponses dans Google Cloud Storage.

Cas d'utilisation

OptimizeTours est pratique pour résoudre des requêtes simples et de petite taille, ou des requêtes dont le temps de résolution est de quelques minutes ou moins. Le maintien de connexions de longue durée à l'API Route Optimization augmente le risque d'interruption avant qu'une solution puisse être renvoyée.

BatchOptimizeTours peut gérer des requêtes plus volumineuses et des requêtes dont le temps de résolution est plus long, car elle ne nécessite pas de connexion de longue durée à l'API Route Optimization.

Opérations de longue durée

Les LRO sont lues à partir de l'API Route Optimization à l'aide de la méthode GetOperation pour vérifier l'état d'achèvement d'un lot. Les LRO incluent une propriété done qui indique si le traitement de l'ensemble du lot est terminé et un champ error qui signale les erreurs rencontrées lors du traitement. Si done est défini sur "true" et qu'aucune error n'est présente, le lot a été traité correctement. La présence d'une error indique qu'une partie ou la totalité du lot n'a pas pu être traitée.

Le cycle de vie typique d'une requête BatchOptimizeTours est le suivant :

  1. Envoyez une BatchOptimizeToursRequest à l'API Route Optimization, qui renvoie le nom de ressource d'une LRO.
  2. Interrogez GetOperation avec le nom de ressource LRO renvoyé jusqu'à ce que les propriétés done ou error apparaissent dans la réponse LRO.
  3. Si done est défini sur "true" et qu'aucune erreur n'est présente, lisez les OptimizeToursResponses à partir des URI Google Cloud Storage spécifiés dans la requête BatchOptimizeTours. Si une error est présente, inspectez-la, mettez à jour les OptimizeToursRequest en conséquence dans Google Cloud Storage, puis réessayez si nécessaire en fonction de l'erreur observée.

Vous pouvez envoyer des requêtes OptimizeTours et BatchOptimizeTours de différentes manières, à partir de la ligne de commande ou à l'aide d'une bibliothèque cliente.

Étape suivante : Effectuer une requête API