同期エンドポイントと非同期エンドポイント

欧州経済領域(EEA)のデベロッパー

Route Optimization API は次の 2 つのメソッドを公開します。

  • OptimizeTours は、OptimizeToursRequest に応答して最適化されたルートを返す同期メソッドです。クライアントは、リクエストが処理され、OptimizeToursResponse またはエラーが返されるまで、Route Optimization API への接続を開いたままにする必要があります。
  • BatchOptimizeTours は、1 つ以上の OptimizeToursRequest の URI と対応する OptimizeToursResponse メッセージを受け取り、バッチ完了の確認に使用される長時間実行オペレーション(LRO)(RESTgRPC)のリソース名を返す非同期メソッドです。OptimizeToursRequest はバックグラウンドで処理されるため、クライアントは BatchOptimizeToursRequest を送信するか、GetOperation を呼び出して LRO ステータスを確認するのに十分な時間だけ、Route Optimization API への接続を開いたままにします。BatchOptimizeTours は、Google Cloud Storage からリクエストを読み取り、レスポンスを書き込みます。

ユースケース

OptimizeTours は、小規模で単純なリクエストや、解決に数分以内の時間を要するリクエストを解決するのに便利です。Route Optimization API への長時間接続を維持すると、解決策が返される前に中断されるリスクが高まります。

BatchOptimizeTours は、Route Optimization API への長時間接続を必要としないため、より大きなリクエストや解決に時間がかかるリクエストを処理できます。

長時間実行オペレーション

LRO は、GetOperation メソッドを使用して Route Optimization API から読み取られ、バッチの完了ステータスが確認されます。LRO には、バッチ全体の処理が完了したかどうかを示す done プロパティと、処理中に発生したエラーを報告する error フィールドが含まれています。done が true で、error が存在しない場合、バッチは正常に完了しています。error が存在する場合、バッチの一部またはすべてで処理が失敗したことを示します。

BatchOptimizeTours リクエストの一般的なライフサイクルは次のとおりです。

  1. Route Optimization API に BatchOptimizeToursRequest を送信します。これにより、LRO のリソース名が返されます。
  2. done プロパティまたは error プロパティが LRO レスポンスに表示されるまで、返された LRO リソース名を使用して GetOperation をポーリングします。
  3. done が true で、エラーがない場合は、BatchOptimizeTours リクエストで指定された Google Cloud Storage URI から OptimizeToursResponses を読み取ります。error が存在する場合は、エラーを調べて、Google Cloud Storage で OptimizeToursRequest を適宜更新し、観測されたエラーに応じて適切に再試行します。

OptimizeTours リクエストと BatchOptimizeTours リクエストは、コマンドラインまたはクライアント ライブラリを使用して、さまざまな方法で送信できます。

次へ: API リクエストを行う