1.3.0 • Published 3 years ago

data-go-kr v1.3.0

Weekly downloads
-
License
MIT
Repository
github
Last release
3 years ago

data-go-kr

개요

공공데이터포털 의 OpenAPI 를 요청하는 CLI 툴 입니다.

How to Use

전역 설치

npm install -g data-go-kr

data-go-kr --config <config-path> --service-key <service-key>

npx 사용

npx data-go-kr --config <config-path> --service-key <service-key>

성공 시 표준 출력으로, 실패 시 표준 에러로 결과를 출력합니다.

Config File

공공데이터 API 요청 시 필요한 파라미터들을 설정해놓은 파일입니다.

config/config.template.json을 참고해주세요.

{
    "serviceName": "service name",
    "serviceKey": "your serviceKey",
    "authType": "header|query",
    "endpoint": "api endpoint",
    // and you want...
}

각 서비스 별로 필요한 파라미터 정보는 그 서비스의 API Spec 을 참고해주세요.

파라미터 우선순위

serviceKey, authType, endpoint, serviceName 은 필수 값 입니다.

미리 예약된 키워드는 CLI Option 을 이용해 덮어쓸 수 있습니다.

우선 순위: 1. CLI Option 2. Config File

data-go-kr --config <config-path> --service-key <service-key> --auth-type <auth-type>

만약 --service-key, --auth-type 옵션을 사용했다면 config file 에서 serviceKey, authType 이 무시됩니다.

Config File 예제

{
    "serviceName": "getCorpOutline_V2",
    "serviceKey": "your serviceKey",
    "authType": "query",
    "endpoint": "https://apis.data.go.kr/1160100/service/GetCorpBasicInfoService_V2/",
    "resultType": "json",
    "crno": "1101113892240",
    "corpNm": "메리츠자산운용"
}

CLI Option

Options:
  -c, --config <string>        공공데이터 API 요청 시 필요한 파라미터들의 설정 파일 경로 (required)
  -m, --service-name <string>  서비스 명
  -s, --service-key <string>   서비스 키
  -a, --auth-type <string>     인증 타입 (header|query)
  -e, --endpoint <string>      엔드포인트 주소
  -r, --max-retries <number>   요청 실패 시 최대 재시도 회수 (default: 5)
  -d, --delay <number>         요청 실패 시 재시도 전 대기시간 (ms) (default: 1000)
  -n, --num-of-rows <number>   페이지 당 불러올 행의 개수 (default: 10)
  -p, --page-no <number>       페이지 번호 (default: 1)
  --pretty <indent>            이쁘게 출력
  --no-num-of-rows             기본 페이지네이션 파라미터(num-of-rows)를 사용하지 않음
  --no-page-no                 기본 페이지네이션 파라미터(page-no)를 사용하지 않음

보안상의 이유로

기본적으로 페이지네이션은 numOfRows, pageNo 쿼리 파라미터를 사용합니다.

페이지네이션 방식이 다른 경우 --no-num-of-rows, --no-page-no 파라미터를 사용하고,

config.json 파일에 페이지네이션 파라미터를 삽입해주세요.

Error Handling

오류는 모두 표준 에러로 출력합니다.

exit code 는 1 입니다.

OpenAPI Error

OpenAPI 에서 출력되는 오류메세지는 XML 로만 출력되며, 형태는 아래와 같습니다.

<OpenAPI_ServiceResponse>
    <cmmMsgHeader>
        <errMsg>SERVICE ERROR</errMsg>
        <returnAuthMsg>SERVICE_KEY_IS_NOT_REGISTERED_ERROR</returnAuthMsg>
        <returnReasonCode>30</returnReasonCode>
    </cmmMsgHeader>
</OpenAPI_ServiceResponse>
에러코드에러메세지설명
1APPLICATION ERROR어플리케이션 에러
4HTTP_ERRORHTTP 에러
12NO_OPENAPI_SERVICE_ERROR해당 오픈 API 서비스가 없거나 폐기됨
20SERVICE_ACCESS_DENIED_ERROR서비스 접근거부
22LIMITED_NUMBER_OF_SERVICE_REQUESTS_EXCEEDS_ERROR서비스 요청제한횟수 초과에러
30SERVICE_KEY_IS_NOT_REGISTERED_ERROR등록되지 않은 서비스키
31DEADLINE_HAS_EXPIRED_ERROR활용기간 만료
32UNREGISTERED_IP_ERROR등록되지 않은 IP
99UNKNOWN_ERROR기타에러

Application Error

CLI 툴 자체의 에러는 아래와 같은 포맷으로 출력됩니다.

error: maxRetries should be integer and greater than 0

Example

금융위원회_기업기본정보

Config

{
  "serviceName": "getCorpOutline_V2",
  "authType": "query",
  "endpoint": "http://apis.data.go.kr/1160100/service/GetCorpBasicInfoService_V2/",
  "resultType": "json",
  "crno": "1101113892240",
  "corpNm": "메리츠자산운용"
}

Command

data-go-kr --config config.getCorpOutline_V2.json --service-key <service-key>

Response

{"response":{"body":{"items":{"item":[{"crno":"1101113892240","corpNm":"메리츠자산운용","corpEnsnNm":"Meritz Asset Management","enpPbanCmpyNm":"메리츠자산운용","enpRprFnm":"이동진","corpRegMrktDcd":"E","corpRegMrktDcdNm":"기타","corpDcd""bzno":"1078708658","enpOzpno":"03051","enpBsadr":"서울특별시 종로구 북촌로 104 계동빌딩","enpDtadr":"서울특별시 종로구 북촌로 104 계동빌딩","enpHmpgUrl":"","enpTlno":"02-6320-3000","enpFxno":"02-6320-3009","sicNm":"64201","enpEstbDt":"2XchgLstgDt":"","enpXchgLstgAbolDt":"","enpKosdaqLstgDt":"","enpKosdaqLstgAbolDt":"","enpKrxLstgDt":"","enpKrxLstgAbolDt":"","smenpYn":"","enpMntrBnkNm":"","enpEmpeCnt":"0","empeAvgCnwkTermCtt":"","enpPn1AvgSlryAmt":"0","actnAudpnNm":"","audtRptOpnnCtt":"","enpMainBizNm":"","fssCorpUnqNo":"00685935","fssCorpChgDtm":"2023/03/20","fstOpegDt":"20230320","lastOpegDt":"20230404"},{"crno":"1101113892240","corpNm":"메리츠자산운용","corpEnsnNm":"Meritz Asset Management","enpPbanCmpyNm":"메리츠자산운용","enpRprFnm":"John Lee(이정복)","corpRegMrktDcd":"E","corpRegMrktDcdNm":"기타","corpDcd":"","corpDcdNm":"","bzno":"1078708658","enpOzpno":"03051","enpBsadr":"서울특별시 종로구 북촌로 104 계동빌딩","enpDtadr":"서울gUrl":"","enpTlno":"02-6320-3000","enpFxno":"02-6320-3009","sicNm":"64201","enpEstbDt":"20080506","enpStacMm":"12","enpXchgLstgDt":"","enpXchgLstgAbolDt":"","enpKosdaqLstgDt":"","enpKosdaqLstgAbolDt":"","enpKrxLstgDt":"","enpKrxLstgAbolDt":"","smenpYn":"","enpMntrBnkNm":"","enpEmpeCnt":"0","empeAvgCnwkTermCtt":"","enpPn1AvgSlryAmt":"0","actnAudpnNm":"","audtRptOpnnCtt":"","enpMainBizNm":"","fssCorpUnqNo":"00685935","fssCorpChgDtm":"2023/01/05","fstOpegDt":"20200509","lastOpegDt":"20230319"}]},"numOfRows":10,"pageNo":1,"totalCount":2},"header":{"resultCode":"00","resultMsg":"NORMAL SERVICE."}}}
1.2.0

3 years ago

1.1.0

3 years ago

1.0.0

3 years ago

1.3.0

3 years ago

1.2.1

3 years ago

0.2.6

10 years ago

0.2.5

10 years ago

0.2.4

10 years ago

0.2.3

10 years ago

0.2.2

10 years ago

0.2.1

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago