TripOptionsError 規格

用於回報行程錯誤的類型。GetTripOptionsGetBulkTripOptions 都可能發生這類錯誤。

如果系統回報錯誤,Google 會等待一段時間 (長度不一),然後再發出要求。這適用於成功的回應和回報錯誤的回應。不過,如果錯誤標示為「可重試」,Google 會大幅縮短等待時間,然後發出下一個要求。如果預期錯誤是暫時性的,這項功能可加快復原速度。

以下各節說明 trip_options_error 欄位可能傳回的錯誤類型:

Proto 定義

message TripOptionsError {
  // Defines the type of error that occurred.
  // A "retryable" error indicates a transient issue, and Google may re-query
  // for the trip again shortly. A "not retryable" error indicates a
  // more permanent state, and Google will not query for this trip again in the
  // near future.
  enum TripOptionsErrorType {
    // The segment corresponding to one of the provided SegmentKeys cannot be
    // found. This error is not retryable.
    SEGMENT_KEY_NOT_FOUND = 1;

    // The data for the requested trip option is not up-to-date at the partner
    // and needs to be refreshed. For partners caching responses the refresh can
    // happen live during the API call. But if partner infrastructure or high
    // latency requires an asynchronous refresh, this error code can be used to
    // prompt Google to re-query the key later. This error is retryable.
    TRIP_OPTION_CACHE_STALE = 2;

    // An unexpected error happened during retrieval of this trip, indicating a
    // bug that needs to be fixed by the partner. This error is retryable.
    INTERNAL_ERROR = 3;

    // The trip was found but the partner considers it suboptimal and
    // chooses not to sell tickets for it. This error is not retryable.
    SUBOPTIMAL_ITINERARY = 4;

    // The trip was found but the partner is not allowed to sell tickets for it
    // due to general ticketing sale restrictions. This error is not retryable.
    TICKETING_PROHIBITED = 5;

    // The partner doesn't support pricing itineraries for the requested date.
    // This error is not retryable.
    BOOKING_WINDOW_NOT_SUPPORTED = 6;
  }

  TripOptionsErrorType error_type = 1;

  // This is not user-visible and is for logging and debugging purposes only.
  string error_message = 2;
}

TripOptionsError JSON 錯誤範例

{
  "error_type": "SEGMENT_KEY_NOT_FOUND",
  "error_message": "No matching segments found, no departures at 14:25"
}