본문 바로가기

Node.js공부/ iOS 앱을 위한 서버개발

공공데이터 포털 OpenAPI 사용하기 - 미세먼지

반응형

개발을 위해서 미세먼지와 날씨정보 OpenAPI를 사용하였습니다. 이번 글에서는 미세먼지 OpenAPI 사용 방법에 대해 얘기하고자 합니다. 제가 사용한 미세먼지 데이터는 공공데이터 포털에서 대기오염통계서비스대기오염 정보 조회 서비스입니다. 전자는 주간 미세먼지 데이터를 위하여, 후자는 실시간 미세먼지 정보 데이터를 위하여 사용하였습니다.




1) 사용하고자 하는 API를 검색한다




2) 발급신청을 누른다.




3) 발급신청 순서를 진행한다.

예시를 통하여 다른 OpenAPI 데이터를 신청하는 과정을 캡처하였습니다.





4) 미리보기를 통해 데이터 유형을 확인해본다.

상세기능정보란에서 '미리보기 다운로드'를 실행하여 '▶미리보기' 버튼을 누르면 요청 데이터를 확인하실 수 있습니다.


XML 형식으로 데이터가 주어진 것을 확인할 수 있습니다 :)

참고로, 인증키는 URL 서비스키 자리에 대입하는 키입니다.


5) 샘플 데이터 코드를 통하여 자신의 프로젝트에 맞게 작성하여 본다.


우측 상단 '개발가이드' 버튼을 통해 페이지를 이동하게되면, 하단에 '▶샘플코드' 섹션을 확인하실 수 있습니다.


언어에 맞는 샘플코드를 참고하여 프로젝트에 맞게 변형 및 적용시켜주시면 됩니다!

공공데이터 - 마이페이지 - OpenAPI - 개발계정 - [승인된 각 OpenAPI] 에 들어가시면 '참고문서'란을 보시면서 데이터를 적용하시는 것도 좋습니다.

데이터제공을 XML형식 뿐 아니라, JSON 형식으로도 제공되는 데이터가 있으니 '참고문서'를 보시면서 확인하시는 것도 좋습니다.

제가 사용한 데이터에서는 요청 URL 뒤에 &_returnType=json 을써주면 JSON 형식으로 데이터가 오는 것을 확인 할 수 있었습니다.


6) 한글 깨짐 해결하기


다음은 제가 요청한 JSON 형식 데이터인데요, 한글이 깨지는 것을 볼 수 있습니다.




request({
url: url+ queryParams,
method: 'GET',
}, function(error, response, body){
if (!error && response.statusCode == 200) {
//response.setContentType("text/html;charset=UTF-8");
res.writeHead(200, {'Content-Type':'text/html;charset=UTF-8'},JSON.stringify(response.headers));
res.end(body);
} else {
console.log('error');
if(response != null) {
res.status(response.statusCode).end();
console.log('error = ' + response.statusCode);
}
}
});


다음과 같이 res.writeHead(200, JSON.stringify(response.headers)); 에 {'Content-Type':'text/html;charset=UTF-8'} 을 추가로 입력하면 한글깨짐현상을 해결할 수 있습니다. :)

반응형

'Node.js공부 > iOS 앱을 위한 서버개발' 카테고리의 다른 글

node.js mongoDB 한국 시간 저장  (0) 2019.03.25