# OPEN API(공공데이터 포탈)

OPEN API ?

​

공공데이터를 이용하기 위해 공공 데이터 포털에 회원 가입합니다.&#x20;

{% embed url="<https://www.data.go.kr/​>" %}

![](https://2648822586-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKJtFns8UmWWxSgNJgC%2F-LQm5jJUasI90LXOZ5lS%2F-LQm4maeT1NwdBWwk4uq%2F%E1%84%89%E1%85%B5%E1%84%8C%E1%85%A1%E1%86%A8png.png?alt=media\&token=ef530601-c574-4c0c-a482-82565a4ad14d)

![](https://2648822586-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKJtFns8UmWWxSgNJgC%2F-LQm5jJUasI90LXOZ5lS%2F-LQm5GzVy1q9dItyY1ZZ%2F%E1%84%89%E1%85%B5%E1%84%8C%E1%85%A1%E1%86%A8_2.png?alt=media\&token=d0933498-79b0-49e7-97ac-8617a73fbd98)

![](https://2648822586-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKJtFns8UmWWxSgNJgC%2F-LQm5jJUasI90LXOZ5lS%2F-LQm5I_upGB7T7v4ZpAL%2F%E1%84%89%E1%85%B5%E1%84%8C%E1%85%A1%E1%86%A83.png?alt=media\&token=5d9889b2-8fda-4c72-a89e-35504898c047)

신청을 하고 난 후 **마이페이지**

![](https://2648822586-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKJtFns8UmWWxSgNJgC%2F-LQm5jJUasI90LXOZ5lS%2F-LQm5U9wWze93RWidwNR%2F%E1%84%89%E1%85%B5%E1%84%8C%E1%85%A1%E1%86%A84.png?alt=media\&token=6b93457d-4f9d-4fb1-8e7d-a773c64f1513)

![](https://2648822586-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKJtFns8UmWWxSgNJgC%2F-LQm5jJUasI90LXOZ5lS%2F-LQm5X5T0POTXomT-8yT%2F%E1%84%89%E1%85%B5%E1%84%8C%E1%85%A1%E1%86%A85.png?alt=media\&token=50404d39-cc5c-4f00-a24d-45d6ccb7fea0)

![](https://2648822586-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LKJtFns8UmWWxSgNJgC%2F-LQm5jJUasI90LXOZ5lS%2F-LQm5_oWBsQlrG1S6hpf%2F%E1%84%89%E1%85%B5%E1%84%8C%E1%85%A1%E1%86%A86.png?alt=media\&token=e0181c5f-acee-4fda-ad88-81de578f84b8)

테스트를 한 결과를 XML, JSON으로 받아봅시다.

{% code title="xml" %}

```
<OpenAPI_ServiceResponse>
	<cmmMsgHeader>
		<errMsg>SERVICE ERROR</errMsg>
		<returnAuthMsg>SERVICE_KEY_IS_NOT_REGISTERED_ERROR</returnAuthMsg>
		<returnReasonCode>30</returnReasonCode>
	</cmmMsgHeader>
</OpenAPI_ServiceResponse>
```

{% endcode %}

```
{"fields":[],"records":[]}
```

위와 같이 나온다면 서비스 키가 아직 등록되지 않은 상태이니 조금 기다려야 합니다.

정상적인 데이터는 아래와 같이 생겼습니다.

{% code title="공휴일 정보 조회.xml" %}

```
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
    <header>
        <resultCode>00</resultCode>
        <resultMsg>NORMAL SERVICE.</resultMsg>
    </header>
    <body>
        <items>
            <item>
                <dateKind>01</dateKind>
                <dateName>어린이날</dateName>
                <isHoliday>Y</isHoliday>
                <locdate>20180505</locdate>
                <seq>1</seq>
            </item>
            <item>
                <dateKind>01</dateKind>
                <dateName>대체휴무일</dateName>
                <isHoliday>Y</isHoliday>
                <locdate>20180507</locdate>
                <seq>1</seq>
            </item>
            <item>
                <dateKind>01</dateKind>
                <dateName>부처님오신날</dateName>
                <isHoliday>Y</isHoliday>
                <locdate>20180522</locdate>
                <seq>1</seq>
            </item>
        </items>
        <numOfRows>10</numOfRows>
        <pageNo>1</pageNo>
        <totalCount>3</totalCount>
    </body>
</response>

```

{% endcode %}

{% code title="공휴일정보.json" %}

```
{"fields":
    [
        {"id":"dateKind"},
        {"id":"dateName"},
        {"id":"isHoliday"},
        {"id":"locdate"},
        {"id":"seq"}
    ],
    "records":[
        {
            "dateKind":"01",
            "locdate":"20180505",
            "seq":"1",
            "isHoliday":"Y",
            "dateName":"어린이날"
        },{
            "dateKind":"01",
            "locdate":"20180507",
            "seq":"1",
            "isHoliday":"Y",
            "dateName":"대체휴무일"
        },{
            "dateKind":"01",
            "locdate":"20180522",
            "seq":"1",
            "isHoliday":"Y",
            "dateName":"부처님오신날"
        }
    ]

}

```

{% endcode %}

XML보다 json이 데이터도 가볍고 사용 구조도 간단함으로 xml과 json을 둘다 제공한다면 json을 이용하는게 편합니다.\
여기서 json은 Python의 dictionary와 같은 구조를 가집니다.

&#x20;요청 api \
<http://apis.data.go.kr/B090041/openapi/service/SpcdeInfoService/getRestDeInfo?solYear=2018\\&solMonth=05\\&ServiceKey=발급받은> 일반 인증 키 &\_type=json xml, json&#x20;

구분은 젤 뒤 &\_type=xml , &\_type=json 두가지를 이용하면 된다.

2018년 05월의 공휴일은 \
20180505 어린이날, 20180507 대체휴무일, 20180522 부처님오신 날 3일 입니.

이처럼 공공데이터를 이용하면 다양한 정보를 쉽게 구할 수 있으니 필요한 정보가 있다면 한번 검색 해볼만합니.<br>
