공통 정보와 부가서비스¶
캐시와 서비스 상태¶
get_app_data()는 앱 메인 캐시에서 버전과 공지를 읽고, get_service_status()는 서비스 운영 상태의 서버 메시지를 반환합니다. 어느 것도 특정 열차나 계정의 예약 가능 여부를 확인하지는 않습니다.
from korail_mobile_api import KorailClient
with KorailClient() as client:
status = client.get_service_status()
print(status.h_msg_cd, status.display_message)
app_data = client.get_app_data()
if app_data.version is not None:
print(app_data.version.new_version)
list_crew_request_reasons()는 호출 화면의 선택지 목록을 읽습니다. 승무원에게 요청을 전송하는 메서드는 없습니다. get_train_calendar()는 서버가 제공하는 운행일과 구분 코드를 반환합니다.
역 데이터 판본¶
get_station_list_version()의 map_version과 count로 서버의 역 데이터 판본과 수록 역 수를 확인할 수 있습니다. list_stations()는 전체 역 목록을 한 번에 받습니다. SDK는 로컬 캐시를 저장하거나 판본 변경 시 자동 갱신하지 않으므로 저장과 갱신 시점은 호출자가 관리합니다.
공통 코드¶
get_common_codes()는 코드 문자열 하나 또는 문자열 목록을 받습니다. 코드별 자료는 BaseKorailResponse.raw에 보존하며 별도의 고정 모델로 변환하지 않습니다.
from korail_mobile_api import KorailClient
with KorailClient() as client:
result = client.get_common_codes([
"app.limousine.stationNm",
"app.limousine.stationCd",
])
print(result.h_msg_cd, result.display_message)
위 두 코드는 기존 관측에서 응답을 확인한 정류장 설정입니다. 정류장 코드가 공항버스 운행 조회의 서비스 코드나 열차군 코드를 뜻하지는 않습니다. 공항버스 운행·좌석 조회는 4.0에서 제공하지 않습니다.
일반 부가서비스 메뉴¶
list_maas_menus()는 승차권과 무관한 일반 메뉴만 조회합니다. 각 항목의 uses_station_selection이 참이면 additional_service_code를 지원 역 조회에 사용할 수 있습니다.
from korail_mobile_api import KorailClient
with KorailClient() as client:
menus = client.list_maas_menus()
menu = next((item for item in menus.items if item.uses_station_selection), None)
if menu is not None and menu.additional_service_code:
stations = client.list_maas_stations(menu.additional_service_code)
print(menu.name, len(stations.stations))
이 예제는 메뉴를 한 번 조회한 뒤 첫 해당 항목의 지원 역을 최대 한 번 조회합니다. 메뉴의 login_required는 제휴 서비스의 이용 조건을 나타내는 데이터이며 SDK의 로그인 상태가 아닙니다. URL도 데이터로만 반환하며 브라우저를 열거나 신청·예약을 실행하지 않습니다. 기존 지원 역 관측은 코드 510에 한정됩니다.
단말 검증값¶
get_uuid()는 서버가 발급한 값을 UuidResponse.verification_code로 반환합니다. 값을 저장하거나 다른 요청에 자동으로 넣지 않으며 로그인·DynaPath 토큰을 생성하는 기능도 없습니다. repr()에서는 값을 숨기지만 필드 접근과 raw에는 원문이 있으므로 그대로 출력하지 마세요.