개발 일지 (Tour API의 상세 정보, 무장애 정보 가져오기)
오늘의 주요 작업
1. 관광지 API 상세 정보, 무장애 정보를 가져오기 위한 경로 추가
- "detailIntro2", "detailInfo2" api 요청을 위한 경로 추가 설정
다음 단계:
2. API 응답 JSON에서, 필요한 데이터를 꺼내는 유틸 클래스 구현
API에서 내려오는 raw-json의 형태
{
"response": {
"header": {
"resultCode": "...",
"resultMsg": "..."
},
"body": {
"items": {
"item": [...]
},
"totalCount": 100
}
}
}
- 여기서 불필요한 껍데기들 (body, items,item 등)을 벗겨내고, 우리 프로젝트에 필요한 데이터들을 정제해서 꺼내쓸 수 있는 형태로 만든다.
contentId = "123"
title = "경복궁"
mapX = 126.9769
mapY = 37.5796
modifiedTime = 2026-05-06T12:30
3. 상세 정보, 무장애 정보를 요청하기 위한 apiService 코드 + 동기화 요청 코드 추가
- getIntro, getInfo를 통해서, 관광지의 상세 정보를 요청한다.
- getAccessibility를 통해서, 무장애 정보를 요청한다.
동기화 로직
public JsonNode getSync(String modifiedTime, int pageNo, int numOfRows, String showFlag) {
Map<String, String> params = defaultParams(pageNo, numOfRows);
params.put("modifiedtime", modifiedTime);
params.put("showflag", showFlag);
params.put("arrange", "C");
return client.callKor(TourApiPath.SYNC_LIST, params);
}
- modifiedTime 필드를 이용해서, 이 시각 이후에 수정된 관광지 데이터만 가져오도록 요청
- 관광지 정보는 static한 정보가 아니기 때문에, 배치 프로그램을 돌려서 주기적으로 정보를 갱신해줘야하는데, 그때 필요한 요청 api이다.
다음 단계: