파트너 서버

가격 및 재고 정보를 통합하려면 파트너가 Partner API를 구현해야 합니다. 이 인터페이스는 REST를 기반으로 하며 Google이 HTTP를 통해 라이브 통화를 전송할 수 있도록 지원합니다. 개별 API 메서드의 세부정보는 참조 섹션에 설명되어 있으며, 교차 관심사에 관한 정보는 나중에 확인할 수 있습니다.

요청 및 응답 형식

처음에는 JSON 형식만 지원됩니다. 추가 요청 또는 응답 형식이 필요한 경우 transport-help@google.com으로 여행 교통팀에 문의하여 사용 사례를 논의하세요.

요청은 HTTP 메서드 POST를 사용하여 전송되며, 요청 메시지는 POST 본문에 있습니다.

구조적 명확성을 위해 API 인터페이스 문서는 프로토콜 버퍼 메시지 정의로 제공되며, 프로토콜 버퍼 메시지 정의를 JSON 객체로 변환하는 작업은 옵션을 사용하여 기본값이 있는 필드를 내보내고 lowerCamelCase 이름 대신 프로토 필드 이름을 사용하도록 표준 JSON 매핑에 의해 정의됩니다.

인증

Google은 HTTP 다이제스트 인증 및 클라이언트 인증서 인증을 지원합니다. Partner API의 모든 HTTP 호출은 HTTP 다이제스트 인증 (사용자 이름 및 비밀번호 사용) 또는 클라이언트 인증서 인증을 사용합니다. 파트너는 Google에 사용자 이름과 비밀번호 (파트너 구성 참고) 또는 SSL 클라이언트 인증서를 각각 제공해야 합니다.

상태 코드 및 오류 처리

일반적으로 다음 상태 코드가 HTTP 응답에서 반환될 수 있습니다.

HTTP 코드 HTTP 설명 참고
2xx 정상 오류 아님, 성공 시 반환 응답 본문에는 오류 응답이 아닌 성공적인 결과 (예: TripOptionsResult)가 포함되어야 합니다.
400 잘못된 요청 수신된 요청이 잘못되었습니다. 메서드별 오류 응답을 사용하여 응답 본문에 추가 오류 세부정보를 반환해야 합니다. HTTP 400은 일반적으로 Google에서 기술적 오류(예: 요청의 필드 이름이 잘못됨)를 일으킨 경우에만 사용해야 합니다.
403 금지됨 권한이 거부 또는 금지되었습니다(호출자가 알려져 있고 거부됨). 일부 리소스가 소진되어 거부된 경우에는 이 응답을 사용해서는 안 됩니다. 대신 이러한 오류에는 Too Many Requests를 사용하세요. 호출자를 식별할 수 없는 경우에는 Forbidden을 사용하면 안 됩니다 (이러한 오류에는 Unauthorized를 대신 사용하세요).
404 찾을 수 없음 요청된 리소스를 찾을 수 없습니다. 메서드별 오류 응답은 응답 본문에 추가 오류 세부정보를 반환하는 데 사용해야 합니다.
429 요청이 너무 많음 일부 리소스가 소진되었습니다. 사용자당 할당량 때문일 수 있습니다.
500 내부 서버 오류 내부 오류가 발생했습니다. 이는 기본 시스템에서 예상하는 일부 불변량이 손상되었음을 의미합니다. 이 오류 코드는 심각한 오류를 위해 예약되어 있으며 파트너의 API 서버 구현에 버그가 있음을 나타냅니다.
503 서비스를 사용할 수 없음 서비스를 사용할 수 없습니다. 일시적인 상태일 가능성이 높으며, 잠시 시간을 두고 다시 시도하면 해결될 수 있습니다.
504 게이트웨이 시간 초과 작업을 완료하기 전에 기한이 지났습니다. 시스템의 상태를 변경하는 작업의 경우 작업이 정상적으로 완료되어도 이 오류가 반환될 수 있습니다. 예를 들어 서버의 성공적인 응답이 오래 지연되어 기한이 지났을 수 있습니다.

모든 사전 조건, 잘못된 인수 또는 찾을 수 없음 오류의 경우 다음 사항에 유의하세요.

  • API에 정의된 메서드별 응답 또는 오류 메시지를 사용해야 합니다.
  • 메서드별 코드에 지정된 올바른 http 코드를 사용해야 합니다 (예: TripOptionsErrorType 참고).

이를 통해 이러한 유형의 오류에 관한 자세한 정보를 제공할 수 있습니다. 이 정보는 다음 용도로 사용할 수 있습니다.

  • 오류를 다시 시도할 수 있는지 확인합니다.
    • SEGMENT_KEY_NOT_FOUND은(는) 다시 시도할 수 없습니다.
  • 오래된 정보 수정
    • Unavailable.Reason.CANCELED는 여정을 삭제해야 함을 나타냅니다. 이는 성공적인 응답의 일부입니다.
    • Unavailable.Reason.TEMPORARILY_UNAVAILABLE와 오류 코드 SEGMENT_KEY_NOT_FOUND, SUBOPTIMAL_ITINERARY, BOOKING_WINDOW_NOT_SUPPORTED, TICKETING_PROHIBITED는 이전에 캐시에서 수신한 가격을 삭제합니다.
  • 사용자에게 관련 안내 제공

TripOptionsError에 제공된 현재 메서드별 오류 목록이 시작점입니다. 추가 오류 유형이 필요한 경우 Google Travel Transport팀에 문의하세요.

QPS (초당 쿼리 수)

Google에서 전송하는 QPS 수준은 파트너 인벤토리와 캐시된 데이터를 보는 사용자 수 또는 예약 목적으로 파트너 웹사이트를 클릭하는 사용자 수에 따라 달라질 수 있습니다.

지연 시간

요청은 10초 후에 타임아웃됩니다. 베타 파트너 통합에는 추가 지연 시간 가이드라인이 없습니다. 하지만 추가 지연 시간 SLO는 파트너 데이터 품질 가이드라인에 정의됩니다.

통화, 세금, 수수료

Google에 전송되는 모든 가격에는 모든 세금 및 수수료가 포함되어야 하며 지원되는 통화로 지정되어야 합니다.

통화

가격의 통화는 currency_code 필드를 사용하여 지정되며, 이 필드는 유효한 ISO 4217 통화 코드여야 합니다.

예(10.25 USD):

{
  "price": {
    "currency_code": "USD",
    "units": 10,
    "nanos": 250000000
  }
}

세금 및 수수료

제공된 가격은 사용자가 지불할 최종 총 가격이어야 하며 모든 세금 (예: VAT)과 추가 수수료 (예: 예약 또는 결제 카드 수수료)가 포함되어야 합니다. 반복 가능한 line_items 필드를 사용하여 선택적 요금 분류를 추가할 수 있습니다. Google은 선택적 요금 세부정보와 함께 총가격을 사용자에게 표시합니다.