본문 바로가기
개발 Study/Node

[Node.js] 공공 오픈 API 이용하기 - 사업자 휴/폐업 실시간 조회

by jiyoon_92 2022. 10. 20.
반응형

공공데이터 포털 오픈 API 사용법

공공데이터포털

현재 구현 중인 프로젝트에서 사업자 등록 번호를 입력하면 해당 사업자가 사업을 계속하고있는지 휴업인지 폐업인지 여부를 알아야하는 기능이 필요했다. 마침 검색해 보니 정부에서 국세청 정보를 무료로 오픈API를 이용하여 실시간 조회를 가능하게 했다는 기사를 보고 직접 구현해보기로 했다.

1. 공공데이터 포털 가입 및 API 활용신청

https://www.data.go.kr/tcs/dss/selectApiDataDetailView.do?publicDataPk=15081808

 

공공데이터 포털

국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제공 및 이용 활성화에 관한 법률(제11956호)』에 따라 개방하여 국민들이 보다 쉽고 용이하게 공유•활용할 수 있도록 공공데이터(Datase

www.data.go.kr

해당 사업자 등록 정보의 진위여부와 현재 상태를 알 수 있는 API를 제공한다.

사업자 조회 API

API 유형은 REST이며 데이터 포맷은 JSON/XML 두가지 로 받을 수 있다. 비용은 무료이므로 유료 서비스를 따로 이용하지 않아도 된다!

우측 상단에 활용신청 버튼을 클릭하면 아래와 같이 입력하라고 뜬다.

데이터 입력

반응형

활용목적으로는 웹사이트 개발이며 우리가 구현할 서비스에 대해 작성하고 동의합니다를 체크하면 바로 승인된다.

승인 내역


2. 오픈 API 활용

API 기본 정보

활용 기간은 2년이며 일반 인증키가 두가지가 있는데 하나는 암호화가 되었고 하나는 암호화되지 않은 키여서 본인은 암호화된 Encoding 키를 이용하여 API를 사용했다.

API 사용 설명

API 호출 시 serviceKey에는 위에서 발급받은 인증키를 쿼리로 넣고 returnType은 JSON으로 하여 POST 했다. 이 때, b_no (사업자번호) 값을 body에 넣어줘야 조회가 가능한데 한 번에 100개의 업체를 조회할 수 있으므로 배열 형태로 넣어야한다.

/**
 * 사업자 휴폐업조회
 * @param biz_num 사업자번호
 * @returns 휴폐업 상태 코드 반환 - 01 : 계속사업자, 02 : 휴업자, 03 : 폐업자
 */
const verifyBiz = async (biz_num : string) => {
  console.log(biz_num);
  const serviceKey = "발급받은 인증키";
  const url = `http://api.odcloud.kr/api/nts-businessman/v1/status?serviceKey=${serviceKey}&returnType=JSON`;
  try {
    const { data } = await axios.post(url, { "b_no" : [biz_num] }, {
      headers: {
        "Content-Type": "application/json",
      }
    });
    if ((data.status_code === 'OK') && (data.match_cnt > 0)) {
      return { res : true, msg : `휴폐업조회 완료. 사업자 번호 : ${biz_num}`, biz_code : data.data[0].b_stt_cd};  
    } else {
      return { res : false, msg : '휴폐업조회 실패.'};
    }
  } catch (error) {
    if (axios.isAxiosError(error)) {
      console.log('error message: ', error.message);
      // 👇️ error: AxiosError<any, any>
      return error.message;
    } else {
      console.log('unexpected error: ', error);
      return 'An unexpected error occurred';
    }
  }
}

axios 라이브러리를 이용하여 쉽게 request를 할 수 있다. "b_no" : [사업자등록번호들] 을 넣고 헤더에는 json 타입을 넣고 조회된 정보를 받아온다.

b_stt_cd 가 현재 사업자의 상태코드기 때문에 받아온 상태코드값을 리턴하며, 호출 한번당 한 업체만 조회할 수 있도록 구현했다.

결과는 아래와 같이 나온다.

쿼리 결과 화면

반응형

댓글