-
Notifications
You must be signed in to change notification settings - Fork 2
API
공공정보 API 서비스 중에 다음 두 가지 서비스에 가입하고 개발자용 서비스키를 발급 받아야 한다.
- sample request
http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?stationName=종로구&dataTerm=month&pageNo=1&numOfRows=10&ServiceKey=발급받은키입력&ver=1.3&_returnType=json
-
입력한 위도 경도에서 가장 가까운 측정소 반환
-
최근 24시간 대기 오염 이미지(위성사진 정보)
-
예보 문구
-
최근 24시간 대기 오염 수치
-
시간대별 대기 오염 수치
필요정보 | request param | response |
---|---|---|
① 입력한 위도 경도에서 가장 가까운 측정소 반환 GET air.dust08.com/location?latitude=36.5&longitude=138 |
위도, 경도 | 측정소 이름 |
② 대기질 예보 정보를 활용해서 PM10 예보 이미지들을 표시한다. GET air.dust08.com/forecase/images |
최근 24시간 대기 오염 이미지(위성사진 정보) | |
③ API에서 받은 전반적인 예보 문구를 표시한다. GET air.dust08.com/forecase |
예보 문구 | |
④ API에서 받은 지역별 등급을 표시한다. (시도별 ) GET air.dust08.com/dust-status/ |
최근 24시간 대기 오염 수치, 전국 등급 |
|
⑤ 현재 시간을 기준으로 가장 최근에 측정된 값 - 등급에 따라서 상태 정보를 표시한다. (특정 측정소의) GET air.dust08.com/dust-status?location={측정소} |
측정소 | 측정소의 등급정보(pm10Grade), 측정시간, 대기오염 수치 |
- Request param : 위도, 경도
- Response : 측정소 이름
GET air.dust08.com/stations?latitude=36.5&longitude=138
필요 정보 | |||||
---|---|---|---|---|---|
stationName | 측정소 명 | 30 | 1 | 창전동 | 측정소 이름 |
성공 : { "stationName" : "강남구" }
실패 : status 400 Bad Request
{ "valid" : "false" , "errorMessage" : "잘못된 요청입니다." }
-
2.1 측정소 조회 서비스 (1) 근처측정소 목록 조회 오퍼
-
오퍼레이션 설명
TM 좌표를 이용하여 좌표 주변 측정소 정보와 측정정소와 좌표 간의 거리 정보를 제공하는 서비스
-
URL end-point
http://openapi.airkorea.or.kr/openapi/services/rest/MsrstnInfoInqireSvc/getNearbyMsrstnList
입력받은 위도, 경도 정보를 TM_X, TM_Y 좌표 정보로 변환하여 OPEN API 요청
- Request param :
- Response : 최근 24시간 대기 오염 이미지(위성사진 정보)
GET air.dust08.com/forecase/images
필요 정보 | |||||
---|---|---|---|---|---|
imageUrl1 | 첨부파일명 | 600 30 | 1 1 | http://www.airkorea.or.kr/file/viewImage/xxxx | 시간대별 예측모델 결과사진 (6:00, 12:00, 18:00, 24:00 KST) 측정소 이름 |
성공 : { "imageUrl1": "http://www.airkorea.or.kr/file/viewImage/?atch_id=138717",
"imageUrl2": "http://www.airkorea.or.kr/file/viewImage/?atch_id=138718",
"imageUrl3": "http://www.airkorea.or.kr/file/viewImage/?atch_id=138719"
}
실패 : status 400 Bad Request
{ "valid" : "false" , "errorMessage" : "잘못된 요청입니다." }
-
2.2 대기오염정보 조회 서비스 (4) 대기질 예보통보 조회 오퍼
-
오퍼레이션 설명
통보코드와 통보시간으로 예보정보와 발생 원인 정보를 조회하는 대기질 (미세먼지/오존) 예보통보 조회
-
URL end-point
http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMinuDustFrcstDspth
-
"informCode": "PM10" → 아니 코드만 이러고 전체 이미지 리스트는 똑같음
-
"PM10"에 해당하는 데이터는 "imageUrl1", "imageUrl2", "imageUrl3" 이것만 넘기기로
-
시간대별 예보 사진은 ... 고민해보도록 (일단은 3개만 넘긴다.)
-
imageUrl 만 파싱해서 전달
GET /openapi/services/rest/ArpltnInforInqireSvc/getMinuDustFrcstDspth?pageNo=1&numOfRows=10&searchDate=2020-03-29&ServiceKey=서비스키&ver=1.1&_returnType=json HTTP/1.1
Host: openapi.airkorea.or.kr
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8,en;q=0.7
Cookie: JSESSIONID=p6UQq5k+YNjCC0qAr3XJB0IV; WMONID=NpW3nF1VI79
Connection: close
- Request param :
- Response : 예보 문구
GET air.dust08.com/forecase/informoverall
필요 정보 | |||||
---|---|---|---|---|---|
informOverall | 예보개황 | 500 | 1 | ○[미세먼지] 수도권·강원영서 … | 예보개황 |
성공 : { "informOverall" : "○ [미세먼지] 전 권역이 '좋음'∼'보통'으로 예상됨." }
실패 : status 400 Bad Request
{ "valid" : "false" , "errorMessage" : "잘못된 요청입니다." }
-
2.2 대기오염정보 조회 서비스 (4) 대기질 예보통보 조회 오퍼
-
오퍼레이션 설명
통보코드와 통보시간으로 예보정보와 발생 원인 정보를 조회하는 대기질 (미세먼지/오존) 예보통보 조회
-
URL end-point
http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMinuDustFrcstDspth
-
"informCode": "PM10" 에 해당하는
informOverall
값만 파싱하여 전달 -
요청 시간에 따라 근접한 발표 dataTime 을 골라서 보내야 할까?
informDate
-
"dataTime": "2020-03-31 11시 발표",
"f_data_time": "2020033111",
"f_data_time1": "20200331",
"f_data_time2": "20200401",
"f_data_time3": "20200402",
"f_inform_data": "20200401"
- Request param :
- Response : 지역별 등급
GET air.dust08.com/forecase/grade
필요 정보 | |||||
---|---|---|---|---|---|
informGrade | 예보등급 | 100 | 1 | 서울 : 나쁨,제주 : 나쁨,전남 : 나쁨 … | 예보등급 |
성공 : { "informGrade": "서울 : 보통,제주 : 보통,전남 : 보통,전북 : 보통,광주 : 보통,경남 : 보통,경북 : 보통,울산 : 보통,대구 : 보통,부산 : 보통,충남 : 보통,충북 : 보통,세종 : 보통,대전 : 보통,영동 : 보통,영서 : 보통,경기남부 : 보통,경기북부 : 보통,인천 : 보통" }
실패 : status 400 Bad Request
{ "valid" : "false" , "errorMessage" : "잘못된 요청입니다." }
-
2.2 대기오염정보 조회 서비스 (4) 대기질 예보통보 조회 오퍼
-
오퍼레이션 설명
통보코드와 통보시간으로 예보정보와 발생 원인 정보를 조회하는 대기질 (미세먼지/오존) 예보통보 조회
-
URL end-point
http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMinuDustFrcstDspth
-
"informCode": "PM10" 에 해당하는
informGrade
값만 파싱하여 전달 -
요청 시간에 따라 근접한 발표 dataTime 을 골라서 보내야 할까?
-
"dataTime": "2020-03-31 11시 발표",
"f_data_time": "2020033111",
"f_data_time1": "20200331",
"f_data_time2": "20200401",
"f_data_time3": "20200402",
"f_inform_data": "20200401"
- Request param :
- Response : 측정소의 등급정보(pm10Grade), 측정시간, 대기오염 수치
GET air.dust08.com/stations/dust-status?stationName={측정소}
필요 정보 | |||||
---|---|---|---|---|---|
pm10Value | 미세먼지(PM10) 농도 | 10 | 1 | 73 | 미세먼지(PM10) 농도 (단위 : ㎍/㎥) |
pm10Grade1h | 미세먼지(PM10) 1시간 등급 | 10 | 1 | 2 | 미세먼지(PM10) 1시간 등급자료 |
dataTime | 측정일 | 20 | 1 | 2016-04-20 14:00 | 오염도측정 연-월-일 시간: 분 |
성공 : { "pm10Value": "68", "pm10Grade1h": "2", "dataTime": "2020-03-31 09:00" }
실패 : status 400 Bad Request
{ "valid" : "false" , "errorMessage" : "잘못된 요청입니다." }
-
2.2 대기오염정보 조회 서비스 (4) 측정소별 실시간 측정정보
-
오퍼레이션 설명
측정소명과 측정데이터 기간(일, 한달, 3개월)으로 해당 측정소의 일반항목 측정정보를 제공하는 측정소별 실시간 측정정보 조회
-
URL end-point
- stationName 에 전달받은 location
- dataTerm : daily (하루치)
- 응답 list 중 요청을 받은 시간을 기준으로 가장 최근 시간에 가까운 "dataTime": "2020-03-31 09:00" 을 기준으로 추출하면 될 듯
http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?stationName=종로구&dataTerm=DAILY&pageNo=1&numOfRows=1&ServiceKey='서비스키'&ver=1.3
&_returnType=json
https://documenter.getpostman.com/view/10776717/SzYXYKpp?version=latest