2-1. 축제 및 행사정보 데이터셋

bonvoyage_hy·2019년 11월 27일
0

SKT NUGU Project

목록 보기
2/10

우리팀은 서울시의 축제 및 행사정보를 제공하기 위해 공공데이터포털의 TourAPI(국내관광정보서비스API)를 활용하였다.TourAPI는 한국관광공사가 제공하는 OpenAPI서비스로 관광정보를 보유하고있다.

앞으로 설명할 진행순서는 다음과 같다.
1. TourAPI 활용신청
2. TourAPI 요청
3. 구체적인 데이터 요청&응답


1. TourAPI활용신청

먼저, TourAPI 활용신청을 통해 사용승인을 받아야 TourAPI 활용이 가능하다. 다행히 TourAPI는 자동승인이므로 활용신청 후 즉시 사용이 가능하다. 이와 더불어 OpenAPI를 활용하는데 필요한 인증키도 발급받을 수 있다.

2. TourAPI 요청

서비스 정보를 자세히 보면 국내관광정보서비스(국문)의 데이터 포맷은 XML이고 REST 형식이다.
이에 REST API방식으로 오픈API를 요청한다.
http://api.visitkorea.or.kr/openapi/service/rest/KorService/areaCode?ServiceKey=servicekey&pageNo=1&MobileOS=ETC&MobileApp=TestApp&_type=json
(응답표준은 XML 이며 JSON을 요청할 경우 &_type=json 을 추가하여 호출해야한다)

위와 같은 REST API방식으로 API를 요청하면 요청한 데이터를 응답받을 수 있다. 여기서 발급받은 인증키를 ServiceKey변수의 parameter로 사용한다.
우리팀은 json형식으로 데이터를 응답받아야하기 때문에 요청url에 &_type=json을 추가한다.

3. 구체적인 데이터 요청&응답

TourAPI는 총11가지 오퍼레이션을 제공하며 우리 팀은 그 중 3가지의 오퍼레이션을 사용했다.

  • areaCode: 지역코드조회
  • searchFestival: 행사정보 조회
  • detailIntro: 소개정보 조회

각 지역마다 부여된 areaCode가 다르고, 관광타입(관광지/문화시설/행사,공연,축제/여행코스/레포츠/숙박/쇼핑/음식점)마다 contentTypeId가 상이하다.

따라서 "서울시의 축제공연행사정보" 만을 제공하는 우리팀은 서울시의 지역코드(area code)를 조회하여 서울시의 지역코드는 1임을 알았고, 한국관광공사_TourAPI활용매뉴얼을 통해 축제공연행사의 관광타입ID(contentTypeId)는 15임을 알수있었다.

  • [행사정보조회]

사용자가 요청하는 날짜와 장소에 해당하는 축제공연행사 정보검색(제목/콘텐츠ID)을 위해 [행사정보조회]오퍼레이션을 사용하였다.

http://api.visitkorea.or.kr/openapi/service/rest/KorService/searchFestival?serviceKey=인증키&MobileOS=ETC&MobileApp=AppTest&arrange=B&listYN=Y&eventStartDate=20170901&areaCode=1&sigunguCode=1&_type=json

위와 같은 방식을 사용하여 조회순으로 정렬된 목록을 응답받는다. 응답받은 데이터 중 각 콘텐츠ID를 다음 오퍼레이션 사용에 활용한다.

  • [소개정보조회]

축제공연행사의 "행사장소(eventplace), 공연시간(playtime), 이용요금(usetimefestival)"과 같은 세부정보검색을 위해 [소개정보조회]오퍼레이션을 사용하였다.

소개정보조회는 각 관광타입마다 응답데이터가 다르므로 축제공연행사의 관광타입에 해당하는 parameter (contentTypeId=15)를 요청url에 추가한다.

http://api.visitkorea.or.kr/openapi/service/rest/KorService/detailIntro?ServiceKey=인증키&contentTypeId=15&MobileOS=ETC&MobileApp=TourAPI3.0_Guide&introYN=Y&contentId=콘텐츠ID&_type=json

위와 같은 방식으로 요청한다.


총 3가지의 오퍼레이션을 통해 TourAPI 에서 사용자가 요청한 날짜와 장소에 해당하는 축제공연행사의 제목, 행사장소, 공연시간, 이용요금 총 4가지의 데이터를 가져왔다.

자세한 코드 설명은 나중 포스트에서 진행하도록 하겠다.

참고문서: TourAPIGuide(Korean)v3.4_20181120

profile
TourHanyang

0개의 댓글