나는 이제 REST API가 무엇인지에 대해서 조금 알았고 , API에 대한 무서움도 조금 사라진것 같다.
이제 어떻게 OPEN API를 다룰 것인지 그게 문제인데, 그럴땐 구글링 만한게 없다.
나는 API경험 ' 무 ' 이다 .
그래서 OPEN API를 어떻게 사용하는지에 대해서 구글링을 해보았고,
해본 결과를 알려줄려고한다.
연습을 하는 것이므로 , 엄청 먼가 대단한 부분은 하나도 없다.
먼저 https://www.data.go.kr/ 이 사이트에 접속을 해준다.
공공데이터포털 이라고 해서 OPEN API를 내가 원하는 데이터를 얻을 수 있다.
만약 ID가 없다면 회원가입을 먼저 해주자.
아참 , 이 사이트에 접속하기 전에 Explorer로 접속을 해주자 , 크롬은 아직 안된다고 한다
내가 다뤄볼 API는 미세먼지농도에 관한 것이다 .
로그인을 하고 검색창에 미세먼지라고 입력을 해주면 다음과 같은 화면이 뜬다.
클릭해준다.
클릭하면 다음과 같은 화면이 뜨는데 , 정말 친절하게 설명해 놓았다.
먼저 데이터포멧의 형태 , End Point , 참고문서가 보이는데
참고문서는 정말 좋다 .
이 API를 어떻게 사용해야 하는지에 대해서 알려주고 , 설명가 같은것이다.
우선 API를 사용하고 싶으므로 활용신청을 눌러준다 .
청을 클릭하게 되면 개발신청이라고 해서 새로운 창이 뜨는데 ,
나는 이미 신청을 해놓았으므로 안되지만 , 사용하고자 하는 사용자는
자신에게 맞게 클릭해서 신청을 해주자 .
아참 , 그리고 신청한 API는 자동승인이므로 바로 사용을 할 수 있다.
신청한 뒤 마이페이지 가면 내가 신청한 목록을 볼 수 있다.
먼저 인증 키 발급이 보일 것인데 인증발급을 해주자 ,
나중에 Serviecekey라고 해서 이 사람이 인증받은 사람인지 , 구별하는 것 같다.
이제 API 사용할 준비는 된 것이다.
문제는 어떻게 사용할 것인가 인데 , 위에서도 보이겠지만 참고문서가 있을 것이다.
참고 문서를 보면 다음과 같은 한글 파일이 열린다.
목차를 보면 정말 정말 친절하게 설명을 해놓은 목차가 있다 .
우리는 지금 서비스 명세에 대기오염정보조회 서비스를 이용할 것이다.
설명서를 쭉 내리다 보면 대기오염정보조회 서비스에 해당하는 개요를 볼 수 있다.
서비스 보안 , 서비스 정보 , 적용 기술 수준 , 서비스 URI 등 확인가능하다.
메시지 교환 유형과 , 로깅 수준도 볼 수 있고 , 데이터 갱신주기는 10분이라는 것도 확인할 수 있다.
보니까 JSON 방식으로 호출도 가능한가 보다 .
오퍼레이션 목록인데 , 어떤 메소드가 정의되어 있는지 친절하게 설명해 준다.
오퍼레이션을 보니까 측정소별 실시간 측정정보 조회라고 되어있는걸 보니 ,
측정소별에 대한 값을 찾아줘야 할 것이다. 밑에 예제에서는 종로구라는 샘플데이터가 들어가 있는걸 확인한다.
그리고 버전에 따른 호출되는 정보가 다르다는 것도 확인한다.
밑에는 메서드에 대한 설명이다 . 이런게 있구나 하고 지나간다.
다음이 이제 이 API를 어떻게 사용하는지에 대한 구체적인 방법이다 .
요청을 통한 응답 메시지에 대한 결과값인데 , 아까 본 getMsrstnAcctoRltmMesureDnsty를 확인할 수 있고,
stationName = 종로구 이걸 통해 측정소별에 대한 변수를 확인 가능하고 , dataTerm , pageNo , numOfRows 등등 확인 가능하다
중요한 것은 Servicekey = 이 부분에 아까 우리가 받았던 인증 키를 넣어줘야 인증이 되면서 응답메시지에 올바른 결과값을
받아 올 수 있다.
이제 직접 한번 해보자 .
다음은 크롬에 주소창에 URI를 복사해서 인증키만 추가해서 넣어준 응답 메시지 값이다.
정말 신기했다 . API를 처음접해보는 나로써는 신기할 뿐이다.
확인도 되었고 , java에서 이것들을 어떻게 쓰는지가 중요하다.
다음은 java에서 URI를 통해서 값을 GET방식으로 받아오는 방식이다.
import java.io.BufferedReader;import java.io.InputStreamReader;import java.net.HttpURLConnection;import java.net.URL;public class Example2 {public static void main(String [] args){BufferedReader br = null;try{String urlstr = "http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?stationName=%EC%A2%85%EB%A1%9C%EA%B5%AC&dataTerm=month&pageNo=1&numOfRows=10&ServiceKey=oOAJnP%2FmbpEtkXEOu4jK1LzPbACEpO6Iy2zRdBDiUjVWIWNL61sqfioNEiw1ZYguuqls5Fje3UHZvhxyNr4uKQ%3D%3D&ver=1.3";# 위 urlstr에 아까 우리가 사용해본 URI주소를 넣어준다.URL url = new URL (urlstr);HttpURLConnection urlconnection = (HttpURLConnection) url.openConnection();# urlconnection에 연결되는 역할을 ,urlconnection.setRequestMethod("GET");# GET방식으로br = new BufferedReader(new InputStreamReader(urlconnection.getInputStream(),"UTF-8"));String result = "";String line;while((line = br.readLine()) != null){result = result + line + "\n";}System.out.println(result);}catch(Exception e){System.out.println(e.getMessage());e.printStackTrace();}}}
결과값은 다음과 같다 .
이렇게 해봄으로써 API를 다루는것에 있어서 거부감?? 무서움 ?? 같은게 조금은 사라졌다.
무엇보다도 겁먹을 필요가 없는게 , 설명서에 정말 친절하게 사용법이 나와있을 뿐더러 ,
예제 code도 있으니 , 처음 접하는 사람들도 편하게 사용할 수 있을 것이다.
나또한 마찬가지이다.
'프로젝트 > 버스카드조회' 카테고리의 다른 글
서울_노선정보조회_API 데이터 만지기. (0) | 2018.09.17 |
---|---|
웹서비스 TEST 프로그램인 SOAP_UI를 설치해 보자 . (0) | 2018.09.17 |
REST API (0) | 2018.09.16 |
HttpURLConnection 클래스 (0) | 2018.09.16 |
J2EE Client 개발 환경 설정하기 (0) | 2018.09.15 |
#IT #먹방 #전자기기 #일상
#개발 #일상