AirlineService
항공사 정보를 조회하고 캐싱하는 서비스. Redis 캐싱으로 Flight API 호출을 최소화한다.
의존성
캐시 설정
| 항목 | 값 |
|---|
| 캐시 키 프리픽스 | airline |
| TTL | 1일 |
| 키 형식 | airline::{iata} |
메서드
getAirlinesMap
fun getAirlinesMap(iatas: Set<String>): Map<String, Airline>
여러 항공사 정보를 맵으로 조회한다.
getAirline (private)
private fun getAirline(iata: String): Airline
단일 항공사 정보를 조회한다. 캐시 우선, 없으면 API 호출.
조회 순서:
- Redis 캐시 확인
- FlightClient API 호출 → 캐시 저장
- API 결과 없으면
Airline.ofIata(iata)로 기본 객체 생성
Airline 객체
| 필드 | 설명 |
|---|
iata | IATA 항공사 코드 |
name | 항공사 명 |
logoUrl | 로고 URL |
특징
- 1일 캐싱: 항공사 정보는 거의 변경되지 않아 1일 TTL
- 폴백 처리: API 결과 없어도 IATA 코드로 기본 객체 생성