FlightSearchProxyController
프록시 서비스용 항공편 검색 API 컨트롤러. 동기식으로 검색 결과를 즉시 반환하며, Split 검색을 지원한다.
필수 헤더
X-Triple-Sales-Channel: 판매 채널X-Triple-Sales-Funnel: 판매 퍼널
의존성
| 서비스 | 용도 |
|---|---|
| StandardFlightSearchUseCase | 표준 검색 |
| SplitFlightSearchUseCase | 분리 검색 (왕복을 편도+편도로) |
| LocationService | 위치 정보 조회 |
메서드
searchOneWayTrip
fun searchOneWayTrip(...): ResponseEntity<List<InternalProxyFlightItemView>>프록시용 편도 검색.
| Caller | Callee |
|---|---|
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 검색을 수행한다.
| Caller | Callee |
|---|---|
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>>표준 검색 로직.
| Caller | Callee |
|---|---|
| 검색 메서드들 | StandardFlightSearchUseCase.searchFlights |
| InternalProxyFlightItemView.of |
searchSplitFlights (private)
private fun searchSplitFlights(
...,
searchTripDirectionType: SearchTripDirectionType?,
detailKey: String?,
promotionPrincipleId: Long?,
cachedListKey: UUID?,
flightGroupCriteria: FlightGroupCriteria,
useCache: Boolean
): ResponseEntity<List<InternalProxyFlightItemView>>Split(분리) 검색 로직. 왕복을 편도+편도로 검색한다.
| Caller | Callee |
|---|---|
| FlightSearchProxyController.searchRoundTrip | CacheKeyGenerator.getFlightSearchCacheKey |
| SplitFlightSearchUseCase.searchFlights | |
| InternalProxyFlightItemView.of |
특징
- 동기식 응답: 폴링 없이 즉시 결과 반환
- 캐시 키 헤더: Split 검색 시
X-Cached-Search-Key헤더 포함 - 멀티티켓: useMultiTicket=true 시 왕복을 편도 2개로 분리 검색