同步和非同步端點

歐洲經濟區 (EEA) 開發人員

Route Optimization API 公開了兩種方法:

  • OptimizeTours同步方法,會傳回回應 OptimizeToursRequest 的最佳化路線。在要求處理完畢並傳回 OptimizeToursResponse 或錯誤之前,用戶端必須維持與 Route Optimization API 的連線。
  • BatchOptimizeTours非同步方法,可接受一或多個 OptimizeToursRequest 的 URI 和對應的 OptimizeToursResponse 訊息,並傳回「長時間執行的作業」(LRO) 的資源名稱 (RESTgRPC),用於檢查批次是否完成。OptimizeToursRequest 會在背景處理,因此用戶端只需維持與 Route Optimization API 的連線,提交 BatchOptimizeToursRequest 或呼叫 GetOperation 檢查 LRO 狀態即可。BatchOptimizeTours 會讀取要求,並將回應寫入 Google Cloud Storage

用途

OptimizeTours 適合解決簡單的小問題,或解決時間不超過幾分鐘的要求。如果與 Route Optimization API 維持長時間連線,在系統傳回解決方案前,連線中斷的風險會增加。

BatchOptimizeTours 可處理較大的要求和解決時間較長的要求,因為不需要與 Route Optimization API 建立長期連線。

長時間執行的作業

使用 GetOperation 方法從 Route Optimization API 讀取 LRO,即可檢查批次作業的完成狀態。LRO 包含 done 屬性,可指出整個批次是否處理完畢,以及 error 欄位,可回報處理期間發生的錯誤。如果 done 為 true 且沒有 error,表示批次作業已順利完成。如果出現 error,表示部分或所有批次處理作業失敗。

BatchOptimizeTours 要求的典型生命週期如下:

  1. 向 Route Optimization API 提交 BatchOptimizeToursRequest,這會傳回 LRO 的資源名稱。
  2. 使用傳回的 LRO 資源名稱輪詢 GetOperation,直到 LRO 回應中出現 doneerror 屬性為止。
  3. 如果 done 為 true 且沒有錯誤,請從要求中指定的 Google Cloud Storage URI 讀取 OptimizeToursResponsesBatchOptimizeTours如果出現 error,請檢查錯誤,在 Google Cloud Storage 中相應更新 OptimizeToursRequest,然後視觀察到的錯誤適當重試。

您可以透過多種方式傳送 OptimizeToursBatchOptimizeTours 要求,包括使用指令列或用戶端程式庫。

下一步:發出 API 要求