CAFE

재후의 역과학

☯ 24절기 정보 얻기 (공공데이터포털 + 한국천문연구원)

작성자재후|작성시간20.07.10|조회수1,560 목록 댓글 0



한국천문연구원 특일 정보


24절기

(24 Divisions)


[한국천문연구원(https://kasi.re.kr/)]이 제공하는 정보 중에

'특일 정보'라는 것이 있습니다.


특일 정보에는

'국경일 정보, 공휴일 정보, 24절기 정보' 등이 포함되어 있습니다.


24절기는

'12절 , 12기'로

이루어져 있습니다.


'Open API'를 호출하는

자바스크립트 코드를 작성하여

정보를 얻을 수 있습니다.





24절기 정보를 얻기 위해서는

인터넷 상에서

GET 방식으로

요청(Request)을 보내야 하는데...


우선

인증키를 발급받아야 합니다.


[공공데이터 포털(https://www.data.go.kr/)]에서

회원가입하여 로그인 한 후

특일 정보(Open API)를 검색하여

'활용신청'을 하면

인증키를 발급받게 됩니다.


인증키를 받게되면

인증키를 GET 방식으로

Query String에 정보를 첨부하여

'한국천문연구원'에

서비스를 요청하게 되는 것입니다.


그 후

응답이 오면

응답(Response ) 정보를 분석(Parsing)하여야 하는데

xml 형식이나 json 형식 중

(기본적으로 xml 형식의 데이터임)

분석에 자신있는 형식으로 데이터를 요청하여 받으면 됩니다.


만약 JSON 형식의 문자열 정보를 받았다면

구체적인 분석을 위해

다음과 같이 JSON 객체의 parse 함수에

json 형식의 문자열 객체(this.responseText)를 인자로 제공한 후

분석하면 됩니다.


var mydata = JSON.parse(this.responseText);






2015년도

24절기 정보

요청(Request)


아래 코드는

json 형식의

24절기 정보를 얻기 위한

핵심 자바스크립트 코드입니다.


그 중...

var mydata = JSON.parse(this.responseText);

이후

루프를 돌리면서

(구체적인 방법은 인터넷 상에서 검색해 볼 것)

원하는 데이터 부분만 추출해낼 수 있습니다. 



var xhr = new XMLHttpRequest();
var url = 'http://openapi.kasi.re.kr/openapi/service/SpcdeInfoService/get24DivisionsInfo'
var queryParams = '?' + encodeURIComponent('ServiceKey') + '='+ 나의_인증키
//queryParams += '&' + encodeURIComponent('pageNo') + '=' + encodeURIComponent('1'); 
//queryParams += '&' + encodeURIComponent('numOfRows') + '=' + encodeURIComponent('30'); 
queryParams += '&' + encodeURIComponent('solYear') + '=' + encodeURIComponent('2015'); 
//queryParams += '&' + encodeURIComponent('solMonth') + '=' + encodeURIComponent('02'); 
queryParams += '&' + encodeURIComponent('_type') + '=' + encodeURIComponent('json'); 

xhr.open('GET'url + queryParams);

xhr.onreadystatechange = function () {
    if (this.readyState == 4) {
        console.log('Status: \n'+this.status);
console.log();
        console.log('nHeaders: \n'+JSON.stringify(this.getAllResponseHeaders()));
console.log();
        console.log('responseText\n\n'+this.responseText); console.log();
    }
};

xhr.send('');







2015년도

24절기 정보

응답(Response)



아래 2015년도 정보에 의하면

'소한'의 절입일시는

2015년 01월 06일, 01시 20분 임을 알 수 있습니다.


responseText: 


{"response":{"header":{"resultCode":"00","resultMsg":"NORMAL SERVICE."},"body":{"items":{"item":[{"dateKind":"03","dateName":"소한","isHoliday":"N","kst":"0120      ","locdate":20150106,"seq":1,"sunLongitude":285},{"dateKind":"03","dateName":"대한","isHoliday":"N","kst":"1843      ","locdate":20150120,"seq":1,"sunLongitude":300},{"dateKind":"03","dateName":"입춘","isHoliday":"N","kst":"1258      ","locdate":20150204,"seq":1,"sunLongitude":315},{"dateKind":"03","dateName":"우수","isHoliday":"N","kst":"0850      ","locdate":20150219,"seq":2,"sunLongitude":330},{"dateKind":"03","dateName":"경칩","isHoliday":"N","kst":"0656      ","locdate":20150306,"seq":1,"sunLongitude":345},{"dateKind":"03","dateName":"춘분","isHoliday":"N","kst":"0745      ","locdate":20150321,"seq":1,"sunLongitude":0},{"dateKind":"03","dateName":"청명","isHoliday":"N","kst":"1139      ","locdate":20150405,"seq":2,"sunLongitude":15},{"dateKind":"03","dateName":"곡우","isHoliday":"N","kst":"1842      ","locdate":20150420,"seq":2,"sunLongitude":30},{"dateKind":"03","dateName":"입하","isHoliday":"N","kst":"0452      ","locdate":20150506,"seq":1,"sunLongitude":45},{"dateKind":"03","dateName":"소만","isHoliday":"N","kst":"1745      ","locdate":20150521,"seq":2,"sunLongitude":60}]},"numOfRows":10,"pageNo":1,"totalCount":24}}} 






다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼