FlightSearchProxyController

프록시 서비스용 항공편 검색 API 컨트롤러. 동기식으로 검색 결과를 즉시 반환하며, Split 검색을 지원한다.

필수 헤더

  • X-Triple-Sales-Channel: 판매 채널
  • X-Triple-Sales-Funnel: 판매 퍼널

의존성

서비스용도
StandardFlightSearchUseCase표준 검색
SplitFlightSearchUseCase분리 검색 (왕복을 편도+편도로)
LocationService위치 정보 조회

메서드

searchOneWayTrip

fun searchOneWayTrip(...): ResponseEntity<List<InternalProxyFlightItemView>>

프록시용 편도 검색.

CallerCallee
HTTP GET /internals/proxy/flights/search/{...}/{outboundDate}FlightSearchProxyController.searchFlights

searchRoundTrip

fun searchRoundTrip(
    ...,
    useMultiTicket: Boolean = false,
    searchTripDirectionType: SearchTripDirectionType?,
    detailKey: String?,
    promotionPrincipleId: Long?,
    cachedListKey: String?
): ResponseEntity<List<InternalProxyFlightItemView>>

프록시용 왕복 검색. useMultiTicket=true 시 Split 검색을 수행한다.

CallerCallee
HTTP GET /internals/proxy/flights/search/{...}/{outboundDate}/{inboundDate}useMultiTicket=true: FlightSearchProxyController.searchSplitFlights
useMultiTicket=false: FlightSearchProxyController.searchFlights

searchMultiCityTrip (2~4구간)

프록시용 다구간 검색. 2~4구간까지 지원한다.


searchFlights (private)

private fun searchFlights(
    adult: Int, child: Int, infant: Int,
    freeBaggageOnly: Boolean,
    cabins: Set<CabinType>,
    useRecommendation: Boolean,
    useCache: Boolean,
    vararg originDestinationLocationInfo: OriginDestinationLocationInfo,
    flightGroupCriteria: FlightGroupCriteria
): ResponseEntity<List<InternalProxyFlightItemView>>

표준 검색 로직.


searchSplitFlights (private)

private fun searchSplitFlights(
    ...,
    searchTripDirectionType: SearchTripDirectionType?,
    detailKey: String?,
    promotionPrincipleId: Long?,
    cachedListKey: UUID?,
    flightGroupCriteria: FlightGroupCriteria,
    useCache: Boolean
): ResponseEntity<List<InternalProxyFlightItemView>>

Split(분리) 검색 로직. 왕복을 편도+편도로 검색한다.

특징

  • 동기식 응답: 폴링 없이 즉시 결과 반환
  • 캐시 키 헤더: Split 검색 시 X-Cached-Search-Key 헤더 포함
  • 멀티티켓: useMultiTicket=true 시 왕복을 편도 2개로 분리 검색