본문 바로가기

Android/OpenAPI, Seoul

OpenAPI example

서울시 제공 공공정보 OpenAPI 사용 절차

서울시에서 제공하는 OpenAPI를 사용하는 절차에 대해서 알아본다

안드로이드 HttpClient를 이용하여 서울시 OpenAPI에 접속하여 데이터를 가져오는 예제는 여기를 참조하세요

안드로이드 URLConnection을 이용하여 서울시 OpenAPI에 접속하여 데이터를 가져오는 예제는 여기를 참조하세요

개 요

서울시 웹사이트에서는 소프트웨어 개발자들을 위해 널리 알려야 할 공공정보를 OpenAPI 형식으로 공개하고 있다.

이 정보를 이용하기 위해서는 서울시에서 발급하는 인증키를 받아야 하고 그 인증키를 요청 URL에 포함하여 요청하면 응답 데이터를 받을 수 있다.


접 속

http://data.seoul.go.kr/ 으로 접속하면 서울시에서 제공하는 OpenAPI의 종류를 모두 확인할 수 있다.

페이지 상부의 [OpenAPI] 를 선택하면 현재 약 111개의 정보가 OpenAPI형식으로 제공되고 있음을 알 수 있다.

그 중에서 사용하고자 하는 데이터의 종류를 찾아서 [서비스 유형] 컬럼의 [OpenAPI] 링크를 클릭하면 해당정보를 좀더 상세하게 설명한 페이지를 볼 수 있으며 해당 사이트로 이동할 수 있는 링크도 찾을 수 있다.


개발자 인증키 신청

그 페이지에서 오른쪽 위의 [OpenAPI] 버튼을 누르면 정보를 받기 위한 요청 URL을 확인할 수 있고 개발자의 인증키가 없다면 [인증키신청] 버튼을 눌러 인증키를 발급받을 수도 있다.


특정 공공정보 요청URL 확인

특히 이 페이지에서는 해당 정보를 받기 위한 요청 URL의 구성에 대해서 상세하게 설명하고 있으며 URL예제와 그 응답의 내용까지도 구체적으로 설명하고 있기 때문에 개발자가 참고해야 할 내용이 많다.


요청 URL 테스트

위와 같이 개발자의 인증키와 얻고자하는 공공정보의 요청 URL구성을 확인했다면 웹브라우저에서 다음과 같이 그 요청 URL을 입력하고 테스트할 수도 있다.

다음은 서울시에서 제공하는 샘플 URL이며 sample 이라는 부분에 개발자의 인증키를 대치하여 사용하면 된다.

http://openAPI.seoul.go.kr:8088/xml/sample/역코드로 지하철역별 첫차_막차 시간 정보 검색/1/5/0152/1/1/

위의 URL을 이용하여 GET 방식의 요청을 서버로 전달해야 하고 URL에 포함된 한글은 URLEncoder를 이용하여 UTF-8으로 인코딩해야 한다. 안드로이드에서 요청할 경우에는 HttpClient, URLConnection클래스를 이용하여 정보를 가져올 수 있다. 페이지 상단 예제링크 참고

요청URL을 이용하여 요청한 결과 응답내용 확인

응답결과는 다음과 같다.

<역코드로지하철역별첫차_막차시간정보검색>
<row1>
<FR_CODE>131</FR_CODE>
<STATION_CD>0152</STATION_CD>
<FIRST_TIME>05:25:00</FIRST_TIME>
<LAST_TIME>24:52:00</LAST_TIME>
<WEEK_TAG>1</WEEK_TAG>
<INOUT_TAG>1</INOUT_TAG>
</row1>
</역코드로지하철역별첫차_막차시간정보검색>


안드로이드에서 서울 공공정보 요청URL 사용


HTTP 요청이므로 Android 기반에서도 HttpClient, URLConnection 등을 이용하면 위와 같은 응답을 수신할 수 있다.
단지 그 응답의 포맷은 XML형태이므로 XML을 다루는 파서를 이용하여 2차 가공해야만 원하는 출력을 볼 수 있다.

Android 기반에서 XML문서를 쉽게 다룰 수 있는 XmlPullParser클래스의 예제는 여기를 참조하세요