본문 바로가기
Programming

[JAVA] T API 를 이용한 공휴일 구하기

by 막이 2017. 9. 8.

****TDCProject Key 생성방법


Workspace -> 신규프로젝트 추가-> Key -> T API 생성

Workspace 의 Service 메뉴로 가서 EventDay 이용신청 및 활성화 ON




URL : https://developers.sktelecom.com/content/product/TAPI/view/?svcId=10072


기념일 정보 조회3rd Party Developer 및 End User가 법정 공휴일, 기념일 등을 조회하는 기능

기본 정보
Resource URLhttps://apis.sktelecom.com/v1/eventday/days?type={type}&year={year}&month={month}&day={day}
Protocol/HTTPREST / Get Method
Version1
Request Parameters
NameTypeMandatoryExampleDefaultDescription
typeStringN h 기념일 종류 법정공휴일 : h 법정기념일 : a 24절기 : s 그외 절기 : t 대중기념일 : p 대체 공휴일 : i 기타 : e
yearStringN 2014 검색할 해 입력(year 생략 시 올해 기준 전체 기념일을 요청 함) 입력 형식 ) yyyy
monthStringN 12 검색할 달 입력(year을 기입하고 month 생략 시 기입한 year 에 속한 전체 기념일을 가져 옴, year을 생략하고 month를 등록 하면 안됨) 입력형식) mm
dayStringN 25 검색할 일자 입력(year, month 입력 후 day 생략 시 year, month 에 해당 하는 전체 기념일을 가져 옴, year, month 를 생략하고 day 를 등록하면 안됨) 입력형식) dd
Response Parameter
NameTypeMandatoryExampleDescription
totalResultStringN검색 결과의 총 개수
resultsNodeN공휴일, 기념일 조회 결과를 나타내는 식별자 입니다.
 yearStringN공휴일, 기념일의 년 (yyyy 형식)
 monthStringN공휴일, 기념일의 월(mm 형식)
 dayStringN공휴일, 기념일의 일(dd 형식)
 typeStringN공휴일, 기념일 종류 법정공휴일 : h 법정기념일 : a 24절기 : s 그외 절기 : t 대중기념일 : p 기타 : e 복수의 타입일 경우 “,” 로 구분해서 나타낸다.
 nameStringN공휴일, 기념일 명




자바스크립트 예제

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<!doctype html>
<html lang="ko">
<head>
    <script type="text/javascript" src="/assets/js/jquery-1.11.3.min.js"></script>
<script>
 
    function test(){
 
    $.ajax({
        type : 'GET',
        url : 'https://apis.sktelecom.com/v1/eventday/days?type=h&year=2017',
        beforeSend : function(xhr){
            xhr.setRequestHeader('TDCProjectKey''키값');
            xhr.setRequestHeader('Accept''application/json');
        },
        error: function(xhr, status, error){
            alert(error);
        },
        success : function(data){
            console.log(data);
        }
 
 
    });
    }
 
</script>
</head>
<body onload="test()">
 
</body>
</html>
cs



자바 예제

컨트롤러로 만들었지만 main 메소드 생성해서 진행하면됨.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
 
import org.apache.commons.httpclient.HttpStatus;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.ResponseHandler;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import java.io.IOException;
import java.net.URI;
import java.net.URISyntaxException;
 
/**
 * Created by ForceRecon on 2017-09-08.
 */
 
@Controller
public class TestController {
 
    // test 페이지
    @RequestMapping({"/test.do"})
    public String apiTest() throws Exception  {
 
        String Token="키값"//token Key
        String targetUrl = "https://apis.sktelecom.com/v1/eventday/days?type=h&year=2017&month=10&day=03";
        String responceBody = this.requestGet(targetUrl, Token);
        System.out.println("reponse data :"+responceBody);
        return null;
    }
 
    private ResponseHandler<String> responseHandler = new ResponseHandler<String>() {
        @Override
        public String handleResponse(HttpResponse response) throws IOException {
            int status = response.getStatusLine().getStatusCode(); // HTTP 상태코드
            if (status == HttpStatus.SC_OK) { // 200 인경우 성공
 
                HttpEntity entity = response.getEntity();
                return entity != null ? EntityUtils.toString(entity) : null;
            } else {
                ClientProtocolException e = new ClientProtocolException("Unexpected response status: " + status);
                throw e; // 상태코드 200이 아닌경우 예외발생
            }
 
        }
    };
 
 
    /*GET 방식의 요청 */
    public String requestGet(String url,  String token) {
        String responseBody = null;
        org.apache.http.client.HttpClient httpclient = new DefaultHttpClient();
 
        try {
 
            URI uri = new URI(url); //ex) http://test.com/test.do?id=1 형태 구성
            HttpGet httpget = new HttpGet();
            httpget.setURI(uri);
 
            // 헤더 값 셋팅
            httpget.setHeader("TDCProjectKey", token);
            httpget.setHeader("Content-Type""application/json; charset=UTF-8");
            responseBody = httpclient.execute(httpget, responseHandler);
        } catch (ClientProtocolException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (URISyntaxException e) {
            e.printStackTrace();
        }
        return responseBody;
    }
 
}
 
cs