Skip to content
Solar edited this page Nov 14, 2020 · 12 revisions

Mockup API

https://documenter.getpostman.com/view/10776717/SzYXYKpp?version=latest

Mockup Server

https://a339a000-63a2-46f5-83eb-bdb0e92712a0.mock.pstmn.io

API 요청시에는 8080으로 보내주셔야 합니다.


필요한 자료

공공정보 API 서비스 중에 다음 두 가지 서비스에 가입하고 개발자용 서비스키를 발급 받아야 한다.

  1. 한국환경공단_측정소정보 조회 서비스

  2. 한국환경공단_대기오염정보 조회 서비스

  • 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
  1. 입력한 위도 경도에서 가장 가까운 측정소 반환

  2. 최근 24시간 대기 오염 이미지(위성사진 정보)

  3. 예보 문구

  4. 최근 24시간 대기 오염 수치

  5. 시간대별 대기 오염 수치

필요정보 request param response
① 입력한 위도 경도에서 가장 가까운 측정소 반환
GET URL/stations?latitude=36.5&longitude=138
위도, 경도 측정소 이름
② 대기질 예보 정보를 활용해서 PM10 예보 이미지들, 문구, 등급을 표시한다.
GET URL/forecase
최근 24시간 대기 오염 이미지(위성사진 정보), 문구, 등급
③ 현재 시간을 기준으로 가장 최근에 측정된 값 - 등급에 따라서 상태 정보를 표시한다. (특정 측정소의)
GET URL/stations/dust-status?stationName={측정소}
측정소 측정소의 등급정보(pm10Grade), 측정시간, 대기오염 수치

① 입력한 위도 경도에서 가장 가까운 측정소 반환

  • Request param : 위도, 경도
  • Response : 측정소 이름
GET URL/stations?latitude=36.5&longitude=138
필요 정보
stationName 측정소 명 30 1 창전동 측정소 이름
성공 : { "valid" : true , "result" : "강남대로" }
실패 : status 400 Bad Request
			{ "valid" : false , "errorMessage" : "잘못된 요청입니다." }
OPEN API
필요 작업

입력받은 위도, 경도 정보를 TM_X, TM_Y 좌표 정보로 변환하여 OPEN API 요청

② 대기질 예보 정보를 활용해서 PM10 예보 이미지 & 등급 & 문구 반환

  • Request param :
  • Response : 최근 24시간 대기 오염 이미지(위성사진 정보), 등급, 문구
GET URL/forecase
필요 정보
imageUrl1 첨부파일명 600 30 1 1 http://www.airkorea.or.kr/file/viewImage/xxxx 시간대별 예측모델 결과사진 (6:00, 12:00, 18:00, 24:00 KST) 측정소 이름
성공 : {"valid":true,"result":{"images":["http://www.airkorea.or.kr/file/viewImage/?atch_id=139021","http://www.airkorea.or.kr/file/viewImage/?atch_id=139022","http://www.airkorea.or.kr/file/viewImage/?atch_id=139023"],"gradeOfCities":"서울 : 보통,제주 : 보통,전남 : 보통,전북 : 보통,광주 : 보통,경남 : 보통,경북 : 보통,울산 : 보통,대구 : 보통,부산 : 보통,충남 : 보통,충북 : 보통,세종 : 보통,대전 : 보통,영동 : 좋음,영서 : 보통,경기남부 : 보통,경기북부 : 보통,인천 : 보통","forecaseContent":"○ [미세먼지] 전 권역이 '보통'으로 예상됨."}}

실패 : status 400 Bad Request
			{ "valid" : "false" , "errorMessage" : "잘못된 요청입니다." }
OPEN API
필요 작업
  • "informCode": "PM10" → 아니 코드만 이러고 전체 이미지 리스트는 똑같음
  • "PM10"에 해당하는 데이터는 "imageUrl1", "imageUrl2", "imageUrl3" 이것만 넘기기로
  • 시간대별 예보 사진은 ... 고민해보도록 (일단은 3개만 넘긴다.)
sample
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

image-20200331135649638

③ 특정 측정소에서 측정한 최근 24시간 측정 결과 반환

  • Request param :
  • Response : 측정소의 등급정보(pm10Grade), 측정시간, 대기오염 수치
GET URL/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 오염도측정 연-월-일 시간: 분
실패 : status 400 Bad Request
			{ "valid" : "false" , "errorMessage" : "잘못된 요청입니다." }
성공 : {"valid":true,"result":[{"dataTime":"2020-04-02 20:00","pm10Value":43,"pm10Grade1h":2},{"dataTime":"2020-04-02 19:00","pm10Value":41,"pm10Grade1h":2},{"dataTime":"2020-04-02 18:00","pm10Value":44,"pm10Grade1h":2},{"dataTime":"2020-04-02 17:00","pm10Value":44,"pm10Grade1h":2},{"dataTime":"2020-04-02 16:00","pm10Value":42,"pm10Grade1h":2},{"dataTime":"2020-04-02 15:00","pm10Value":55,"pm10Grade1h":2},{"dataTime":"2020-04-02 14:00","pm10Value":64,"pm10Grade1h":2},{"dataTime":"2020-04-02 13:00","pm10Value":56,"pm10Grade1h":2},{"dataTime":"2020-04-02 12:00","pm10Value":47,"pm10Grade1h":2},{"dataTime":"2020-04-02 11:00","pm10Value":46,"pm10Grade1h":2},{"dataTime":"2020-04-02 10:00","pm10Value":48,"pm10Grade1h":2},{"dataTime":"2020-04-02 09:00","pm10Value":32,"pm10Grade1h":2},{"dataTime":"2020-04-02 08:00","pm10Value":31,"pm10Grade1h":2},{"dataTime":"2020-04-02 07:00","pm10Value":30,"pm10Grade1h":1},{"dataTime":"2020-04-02 06:00","pm10Value":30,"pm10Grade1h":1},{"dataTime":"2020-04-02 05:00","pm10Value":26,"pm10Grade1h":1},{"dataTime":"2020-04-02 04:00","pm10Value":22,"pm10Grade1h":1},{"dataTime":"2020-04-02 03:00","pm10Value":23,"pm10Grade1h":1},{"dataTime":"2020-04-02 02:00","pm10Value":23,"pm10Grade1h":1},{"dataTime":"2020-04-02 01:00","pm10Value":0,"pm10Grade1h":0},{"dataTime":"2020-04-01 24:00","pm10Value":20,"pm10Grade1h":1},{"dataTime":"2020-04-01 23:00","pm10Value":19,"pm10Grade1h":1},{"dataTime":"2020-04-01 22:00","pm10Value":24,"pm10Grade1h":1},{"dataTime":"2020-04-01 21:00","pm10Value":43,"pm10Grade1h":2}]}
OPEN API
필요 작업
  • stationName 에 전달받은 location
  • dataTerm : daily (하루치)
http://openapi.airkorea.or.kr/openapi/services/rest/ArpltnInforInqireSvc/getMsrstnAcctoRltmMesureDnsty?stationName=종로구&dataTerm=DAILY&pageNo=1&numOfRows=1&ServiceKey='서비스키'&ver=1.3
&_returnType=json