공휴일 API

3. 공휴일 API

국경일/공휴일 정보 API를 알아보겠습니다.

특일 정보 API 신청 바로가기

1. 코드 작성
API 신청은 생략하겠습니다. API 자체도 굉장히 쉽기 때문에 간단히 호출하는 코드를 작성해보겠습니다.

제 인생 최고의 휴일이였던 2017년 10월 데이터를 호출해보겠습니다. 기억나시나요?


003_1.png
 

// 공휴일 정보를 받아오는 함수를 작성하겠습니다.
function vaca_data() {}


year , month 정도만 있으면 될 것 같습니다. 

function vaca_data($year, $month) {
	$key = "****************"; your API Key
	$data = 'ServiceKey='.$key;
	$data .= '&solYear='.$year;
	$data .= '&solMonth='.sprintf("%02d",$month);
	
	$url = "http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getHoliDeInfo?".$data;
	$ch = curl_init();
	curl_setopt($ch, CURLOPT_URL, $url);
	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
	curl_setopt($ch, CURLOPT_HEADER, FALSE);
	curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
	$response = curl_exec($ch);
	curl_close($ch);
	
	// XML to Array
	$xml = simplexml_load_string($response, 'SimpleXMLElement', LIBXML_NOCDATA);
	return json_decode(json_encode((array)$xml), TRUE);
}

vaca_data(2017, 10); // call


Array를 XML로 변경하는 소스를 추가했습니다. 

[출력 예시]

Array
(
    [header] => Array
        (
            [resultCode] => 00
            [resultMsg] => NORMAL SERVICE.
        )

    [body] => Array
        (
            [items] => Array
                (
                    [item] => Array
                        (
                            [0] => Array
                                (
                                    [dateKind] => 01
                                    [dateName] => 임시공휴일
                                    [isHoliday] => Y
                                    [locdate] => 20171002
                                    [seq] => 2
                                )

                            [1] => Array
                                (
                                    [dateKind] => 01
                                    [dateName] => 개천절
                                    [isHoliday] => Y
                                    [locdate] => 20171003
                                    [seq] => 1
                                )

                            [2] => Array
                                (
                                    [dateKind] => 01
                                    [dateName] => 추석
                                    [isHoliday] => Y
                                    [locdate] => 20171003
                                    [seq] => 2
                                )

                            [3] => Array
                                (
                                    [dateKind] => 01
                                    [dateName] => 추석
                                    [isHoliday] => Y
                                    [locdate] => 20171004
                                    [seq] => 1
                                )

                            [4] => Array
                                (
                                    [dateKind] => 01
                                    [dateName] => 추석
                                    [isHoliday] => Y
                                    [locdate] => 20171005
                                    [seq] => 1
                                )

                            [5] => Array
                                (
                                    [dateKind] => 01
                                    [dateName] => 대체공휴일
                                    [isHoliday] => Y
                                    [locdate] => 20171006
                                    [seq] => 1
                                )

                            [6] => Array
                                (
                                    [dateKind] => 01
                                    [dateName] => 한글날
                                    [isHoliday] => Y
                                    [locdate] => 20171009
                                    [seq] => 1
                                )

                        )

                )

            [numOfRows] => 10
            [pageNo] => 1
            [totalCount] => 7
        )

)


 

0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

기타

번호 제목 글쓴이 날짜 조회수
14 [solana] 개발환경 구성하기 관리자 07-22 201
13 DNS 서버 취약점 보안 조치 관리자 10-13 615
12 백엔드 서비스인 포켓베이스 관리자 04-22 1,107
11 공휴일 API 관리자 08-26 905
10 유사도별로 이미지를 구성 관리자 05-23 727
9 vscode +1 관리자 04-26 1,117
8 VSCode 확장 SFTP Error: Handshake failed: 관리자 01-07 1,138
7 요약 관리자 01-04 779
6 마크다운 사용법 관리자 12-22 699
5 깃허브 요약 2 관리자 12-22 789
4 깃허브 요약 1 관리자 12-22 591
3 mysterydata 관리자 10-22 796
2 자바그룹웨어 +1 관리자 10-22 1,192
1 오픈소스 그룹웨어 관리자 10-21 1,434