[Open API] 공공데이터포털 오픈API 활용 : 관광지정보-소개정보서비스



공공데이터포털에서 제공하는 오픈API 중 ‘관광지정보-소개정보서비스’를 활용하기 위해 제공되는 문서를 정리해 보겠습니다. 그리고 API를 요청하는 방식 중 REST API 방식의 요청 테스트를 하고 제공되는 데이터를 확인해 보겠습니다.

오픈API의 경우 개발자나 활용자가 오픈API를 요청하기 위해 규격과 같은 활용 가이드 문서를 제공합니다.

공공데이터포털에서 활용신청한 오픈API를 마이페이지에서 확인해 보면 하단에 docx 파일의  ‘참고문서’를 확인 할 수 있습니다.

OpenAPI활용가이드(제주관광종합정보_관광지정보-소개 정보서비스)

공공데이터포털에서 제공하는 오픈API 활용 가이드 문서를 확인하고 어떻게 오픈API를 요청할 수 있는지 정리하도록 하겠습니다.

오픈API를 활용하기 위해서는 요청 규칙이 있습니다. 그리고 오픈API를 제공하는 서비스에서는 가이드 문서와 같이  요청 방식(URI, 파라메터 등)을 정의하고 있습니다.

해당 문서의 구성은 아래와 같습니다.

1. 서비스 사용

서비스 Key 발급 및 활용하는 방법을 설명하며 서비스 Key 발급은 ‘공공데이터포털 오픈API‘에서 언급하였습니다.

그리고 오픈API를 활용 신청하고 발급 받은 인증키 활용 방법을 설명합니다.

API 요청 방식으로 2가지 방식의 요청 방법이 있습니다.

(1) REST API 방식의 요청

http://openapi.jejutour.go.kr:8080/openapi/service/TourSpotInfoService/getTourSpotCategory?ServiceKey=인증키&_type=json
(표준은 XML 이며 JSON을 요청할 경우 “&_type=json”을 추가하여 호출)

위와 같은 방식으로 API 요청을 할 수 있고 요청한 데이터를 응답받을 수 있겠습니다. 그리고 이전에 발급받은 인증키는 ServiceKey 변수의 파라메터로 사용되며 이 키를 이용하여 API 인증을 수행합니다.

그리고 API를 요청했을 때 기본적으로 XML 형식으로 데이터를 제공하며 개발환경에 따라 JSON 형식으로 데이터를 응답받기 위해서는 ‘&_type=json’를 추가하여 요청하면 JSON 형식으로 데이터를 확인할 수 있습니다.

(2) SOAP 방식의 요청

SOAP 웹서비스 방식의 API 호출 서비스도 제공하는 것으로 확인됩니다.

아래와 같은 xml 형식의 Request 메시지를 만들고 API를 요청할 수 있고 xml 형식으로 응답을 받을 수 있습니다.

<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:head="http://apache.org/headers" xmlns:soap="http://soap.open.pp.acrc/">
   <soapenv:Header>
      <head:ComMsgHeader>
         <ServiceKey> 인증키 </ServiceKey>
      </head:ComMsgHeader>
   </soapenv:Header>
   <soapenv:Body>
      <soap:getOpenProposalList>        
         <OpenPropListRequest>
            <nowPageNo>1</nowPageNo>
            <pageMg>2</pageMg>
            <region>5%EC%9B%9420101101</ region>           
            <regTo>20101130</regTo>
         </OpenPropListRequest>
      </soap:getOpenProposalList>
   </soapenv:Body>
</soapenv:Envelope>

위 2가지 방식 중 REST API 형식의 API 요청을 테스트할 예정이고 SOAP 방식의 테스트는 향후 자세한 설명을 할 수 있도록 하겠습니다.

2. 서비스 목록

서비스 목록은 제주관광종합정보 관련 오픈API에서 제공하는 전체 서비스를 기술한 것 같습니다.  해당 정보는 참고하면 될 것 같습니다.

우리는 오픈API를 신청한 ‘관광지정보-소개 정보서비스’를 테스트할 것입니다.

3. 서비스 명세

서비스 명세에서는 다양한 서비스 중 ‘관광지정보-소개 정보서비스’ 오픈API에 대한 명세를 기술하고 있습니다.

이 서비스에서는 6가지의 요청 오퍼레이션을 제공하고 아래와 같습니다.

  • getTourSpotCategory : 관광지 분류 목록 조회
  • getTourSpotList : 관광지 분류별 관광지 목록 조회
  • getTourSpotInfo : 소개정보 조회
  • getTourSpotLocation : 교통/약도 정보 조회
  • getTourSpotRelate : 주변 정보 데이터 선택 처리
  • getTourSpotGallery : 갤러리 조회

위 6가지 요청 오퍼레이션에 대한 상세한 내용은 활용가이드 문서를 통해서 자세하게 확인할 수 있을 것이라고 생각됩니다.

여기에서는 API 요청 및 테스트를 하기 위한 정보들을 정리하고 향후 요청 테스트에서 바로 사용하고 결과를 확인 할 수 있도록 하겠습니다.

(0) 개요

  • API 요청에 필요한 정보만을 한정하여 리스트업 합니다.
  • 요청 메시지(URI)의 기본 형태는 아래와 같습니다.
http://openapi.jejutour.go.kr:8080/openapi/service/TourSpotInfoService/서비스명?serviceKey=인증키&_type=json
  • json 방식으로 데이터를 제공받을 예정입니다.
  • 요청/응답 메시지 예제에 요청 URI로 하면 요청 실패하는 현상이 확인됩니다.
    • Servicekey –> serviceKey로 요청 필요 (API URI는 대/소문자를 구분합니다.)

(1) getTourSpotCategory : 관광지 분류 목록 조회

ㅇ HTTP Method : REST (GET)

ㅇ 필수 파라메터 없음

ㅇ 요청 URI

http://openapi.jejutour.go.kr:8080/openapi/service/TourSpotInfoService/getTourSpotCategory?serviceKey=인증키&numOfRows=100&_type=json

(2) getTourSpotList : 관광지 분류별 관광지 목록 조회

ㅇ HTTP Method : REST (GET)

ㅇ 필수 파라메터

  • CAT : 분류코드

ㅇ 요청 URI

http://openapi.jejutour.go.kr:8080/openapi/service/TourSpotInfoService/getTourSpotList?serviceKey=인증키&CAT=TU02&numOfRows=100&_type=json

(3) getTourSpotInfo : 소개정보 조회

ㅇ HTTP Method : REST (GET)

ㅇ 필수 파라메터

  • SEQ : 관광지번호

ㅇ 요청 URI

http://openapi.jejutour.go.kr:8080/openapi/service/TourSpotInfoService/getTourSpotInfo?serviceKey=인증키&SEQ=310&numOfRows=100&_type=json

(4) getTourSpotLocation : 교통/약도 정보 조회

ㅇ HTTP Method : REST (GET)

ㅇ 필수 파라메터

  • SEQ : 관광지번호

ㅇ 요청 URI

http://openapi.jejutour.go.kr:8080/openapi/service/TourSpotInfoService/getTourSpotLocation?serviceKey=인증키&SEQ=310&numOfRows=100&_type=json

(5) getTourSpotRelate : 주변 정보 데이터 선택 처리

ㅇ HTTP Method : REST (GET)

ㅇ 필수 파라메터

  • SEQ : 관광지번호

ㅇ 요청 URI

http://openapi.jejutour.go.kr:8080/openapi/service/TourSpotInfoService/getTourSpotRelate?serviceKey=인증키&SEQ=310&numOfRows=100&_type=json

(6) getTourSpotGallery : 갤러리 조회

ㅇ HTTP Method : REST (GET)

ㅇ 필수 파라메터

  • SEQ : 관광지번호

ㅇ 요청 URI

http://openapi.jejutour.go.kr:8080/openapi/service/TourSpotInfoService/getTourSpotGallery?serviceKey=인증키&SEQ=310&numOfRows=100&_type=json

 

레퍼런스

ㅇ IROS_SS_ID_DV_0501_OpenAPI활용가이드(제주관광종합정보_관광지정보-소개 정보서비스)_v1.0.doc

 

마치며

공공데이터포털에서 제공되는 가이드 문서를 확인하여 오픈API를 호출하는 정의된 규칙을 알아보고 정리하였습니다.

제공되는 가이드 문서에 따라 수월하게 테스트가 되지 않는 부분이 좀 있었습니다.

저만 그런 것인지는 잘 모르겠으나 해보시면 알 수 있을 것 같습니다.

정부에서 공공데이터라고 공개적으로 오픈API를 제공하는 서비스를 함에 있어 개발자들이 참고하는 문서가 명확하지 않으면 어려움이 있을 것이라고 생각됩니다.

이제 오픈API를 활용할 준비는 된 것 같습니다.

python, php 등의 언어를 이용하여 오픈API를 호출하고 응답을 확인하는 테스트를 해볼 수 있도록 하겠습니다.

 



1 thought on “[Open API] 공공데이터포털 오픈API 활용 : 관광지정보-소개정보서비스”

Leave a Comment