목표: 사용자의 위치한 곳의 기상 정보를 가져와 위젯 만들기
1. 기상청 단기예보 API 발급하기
1.1 공공데이터 포털에서 로그인 후 "활용신청"을 눌러 Open API 신청하기
신청이 완료되면 api 요청시 사용하는 인증키가 발급된다.
1.2 발급받은 서비스 인증키와 참고문서 확인하기
참고문서는 Open API를 활용하기 위한 가이드이므로 필수로 다운로드하여 확인한다.
여기서 인증키는 Encoding을 위한 일반 인증키를 사용한다.
2. 발급받은 인증키로 API 요청 보내 보기
2.1 API요청을 위한 변수에 대한 설명
단기예보 서비스는 4가지의 종류가 있다.
- 초단기실황 조회
- 초단기예보 조회
- 단기예보 조회
- 예보버전 조회
여기서는 단기예보조회를 사용해 데이터를 받아온다.
"개발계정 상세보기" 페이지에서 아래로 내리면
상세기능정보가 나오고 여기서 API 요청을 보내 볼 수 있다.
요청변수에 대한 내용은 오픈API활용가이드 워드 파일 10page에 있으며
아래와 같다.
항목명(영문) | 항목명(국문) | 항목크기 | 항목구분 | 샘플데이터 | 항목설명 |
serviceKey | 인증키 | 100 | 1 | 인증키 (URL Encode) |
공공데이터포털에서 발급받은 인증키 |
numOfRows | 한 페이지 결과 수 | 4 | 1 | 50 | 한 페이지 결과 수 Default: 10 |
pageNo | 페이지 번호 | 4 | 1 | 1 | 페이지 번호 Default: 1 |
dataType | 응답자료형식 | 4 | 0 | XML | 요청자료형식(XML/JSON) Default: XML |
base_date | 발표일자 | 8 | 1 | 20210628 | ‘21년 6월 28일발표 |
base_time | 발표시각 | 4 | 1 | 0500 | 05시 발표 * 하단 참고자료 참조 |
nx | 예보지점 X 좌표 | 2 | 1 | 55 | 예보지점의 X 좌표값 *별첨 엑셀 자료 참조 |
ny | 예보지점 Y 좌표 | 2 | 1 | 127 | 예보지점의 Y 좌표값 *별첨 엑셀 자료 참조 |
- base time은 워드 파일 21페이지에
- nx,ny에 대한 내용은 엑셀 파일에 정리되어 있다.
2.2 변수 지정 후 요청 보내기
정리하자면 아래 내용은 13일 0시 14분에 창원시 성산구 중앙동에 대한 예보를 알아보기 위해
가장 가까운 이전 발표 시각인 12일 23시 발표 자료를 요청하는 것이다.
2.3 API 요청 응답 확인하기
요청 응답은 resultCode와 resultMsg를 통해 응답의 상태를 확인하고
fcstDate, fcstTime, category, fcstValue를 통해 예보에 대한 정보를 확인 할 수 있다.
예를 들어 두 번째 행의 category:"TMP"는 terperate의 약자로
fcstTime:0시에 fcstValue:28도 기온을 예보하고 있다
항목명(영문) | 항목명(국문) | 항목크기 | 항목구분 | 샘플데이터 | 항목설명 |
numOfRows | 한 페이지 결과 수 | 4 | 1 | 50 | 한 페이지당 표출 데이터 수 |
pageNo | 페이지 번호 | 4 | 1 | 1 | 페이지 수 |
totalCount | 데이터 총 개수 | 10 | 1 | 1 | 데이터 총 개수 |
resultCode | 응답메시지 코드 | 2 | 1 | 00 | 응답 메시지코드 |
resultMsg | 응답메시지 내용 | 100 | 1 | NORMAL SERVICE | 응답 메시지 설명 |
dataType | 데이터 타입 | 4 | 1 | XML | 응답자료형식 (XML/JSON) |
baseDate | 발표일자 | 8 | 1 | 20210628 | ‘21년 6월 28일 발표 |
baseTime | 발표시각 | 6 | 1 | 0500 | 05시 발표 |
fcstDate | 예보일자 | 8 | 1 | 20210628 | ‘21년 6월 28일 예보 |
fcstTime | 예보시각 | 4 | 1 | 0600 | 6시 예보 |
category | 자료구분문자 | 3 | 1 | TMP | 자료구분코드 * 하단 코드값 정보 참조 |
fcstValue | 예보 값 | 2 | 1 | 21 | * 하단 코드값 정보 참조 * TMP, TMN, TMX, UUU, VVV, WAV, WSD 자료는 실수 또는 정수로 제공 |
nx | 예보지점 X 좌표 | 2 | 1 | 55 | 입력한 예보지점 X 좌표 |
ny | 예보지점 Y 좌표 | 2 | 1 | 127 | 입력한 예보지점 Y 좌표 |
요청 결과)
참고 사이트: 공공데이터포털
'JAVASCRIPT' 카테고리의 다른 글
javascript) 룰렛 만들기 (0) | 2022.08.20 |
---|---|
jfif와 jpeg(jpg)의 차이 (0) | 2022.08.17 |
javascript) 기상청 Open API를 이용한 날씨 위젯 만들기 4 (0) | 2022.08.13 |
javascript) 기상청 Open API를 이용한 날씨 위젯 만들기 3 (0) | 2022.08.13 |
javascript) 기상청 Open API를 이용한 날씨 위젯 만들기 2 (0) | 2022.08.13 |