공공데이터포털( data.go.kr )에서 제공하는 API key 사용에 대해 알아본다.
개요
공공데이터 포털에서 제공하는(외부랑 연결되는 API 제외) API사용을 하려면 거의 대부분 API key를 사용해야 한다. 그런데 제공되는 key가 Encoding과 Decoding 두가지라 처음 사용하는 사람들은 헷갈릴 수 있다. 이번 게시글에서는 언제 어떤 key를 사용해야 하는지 requests 라이브러리와 함께 알아보도록 한다.
Key의 확인
사이트의 마이페이지에 들어가면 API key를 확인할 수 있으며 Encoding과 Decoding 중 필요한 key를 복사할 수 있다.
그리고 다음과 같이 특정 API페이지에 들어가도 Encoding과 Decoding key를 확인할 수 있다.
Key의 사용
파이썬으로 restful API를 호출하는 경우 대표적으로 requests 또는 urllib 라이브러리를 사용하는데 여기서는 requests 라이브러리를 사용한 예시를 보도록 하자.
API를 호출하기 위해서는 requests 라이브러리의 get()
함수를 사용하게 되는데 해당 함수에는 모든 정보를 “URL”에 실어서 보내는 방법이 있고, 기본이 되는 URL(end point)와 파라미터를 분리해서 보내는 방법이 있다. 첫 번째 방식을 “Query String”으로 부르고 두 번째 방식을 “파라미터 분리 방식”이라고 부른다.
먼저 “Query String” 방식으로 API를 호출하는 예시를 보도록 하자.
※ Py) API(공공) 아파트 매매 실거래가 상세 참고
1 | import requests |
이 경우는 Encoding Key를 “serviceKey”인자에 할당해야 한다. URL이 길어 확인이 어렵다면 중간 즈음에 있는 “?”기호 바로 뒤에 “serviceKey”가 있기 때문에 이 부분을 확인하면 된다.
다음으로는 “파라미터 분리 방식”으로 API를 호출하는 예시를 보도록 하자.
1 | import requests |
이 경우는 Decoding Key를 “serviceKey”인자에 할당해야 한다.
두 방식은 서로 다르지만 코드 작성 스타일에 따라서 취사선택 하면 된다. 개인적으로는 간단한 코드 작성에는 “Query String” 방식을 사용하고 보다 복잡한 코드 또는 대량의 호출이 필요한 경우는 “파라미터 분리 방식”을 사용하니 참고하도록 하자.
주의사항
API key는 ID와 비밀번호에 준하게 관리를 해야 한다. 물론 공공데이터 포털의 API key는 무료이지만 평소에 이런 접근 권한 등 관려된 정보는 공개된 장소에 노출하지 않도록 주의하는 습관을 들여야 한다.