정부혜택 정보 (API 구현)

24 read
민간투자연계형매칭융자소상공인시장진흥공단
서비스분야고용·창업
신청방법기타 온라인신청
신청기한소상공인정책자금 사이트 별도 안내
자세히 보기
대환대출소상공인시장진흥공단
서비스분야고용·창업
신청방법기타 온라인신청
신청기한소상공인정책자금 사이트 별도 안내
자세히 보기
재도전특별자금소상공인시장진흥공단
서비스분야고용·창업
신청방법기타 온라인신청
신청기한소상공인정책자금 사이트 별도 안내
자세히 보기
신용취약소상공인자금소상공인시장진흥공단
서비스분야고용·창업
신청방법기타 온라인신청
신청기한소상공인정책자금 사이트 별도 안내
자세히 보기
장애인기업지원자금소상공인시장진흥공단
서비스분야고용·창업
신청방법기타 온라인신청
신청기한소상공인정책자금 사이트 별도 안내
자세히 보기
긴급경영안정자금소상공인시장진흥공단
서비스분야고용·창업
신청방법기타 온라인신청
신청기한소상공인정책자금 사이트 별도 안내
자세히 보기
소기업·소상공인 전환보증중소벤처기업부
서비스분야고용·창업
신청방법방문신청
신청기한상시신청
자세히 보기
수출유망 중소기업 지원 특례보증중소벤처기업부
서비스분야고용·창업
신청방법방문신청
신청기한상시신청
자세히 보기
녹색기업지원 특례보증중소벤처기업부
서비스분야고용·창업
신청방법방문신청
신청기한상시신청
자세히 보기
기업가형 소상공인 지원 협약보증중소벤처기업부
서비스분야고용·창업
신청방법방문신청
신청기한상시신청
자세히 보기
온[溫, ON]택트 특례보증중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청||직접입력
신청기한상시신청
자세히 보기
스마트소공인 육성 협약보증중소벤처기업부
서비스분야고용·창업
신청방법방문신청
신청기한접수기관 별 상이
자세히 보기
로직 설명
  1. API URL - https://api.odcloud.kr/api/gov24/v3/serviceList
  2. serviceKey - authkey ( 참고 : https://www.data.go.kr/data/15113968/openapi.do )
  3. 파라미터
    • 등록일시(이상) : cond[등록일시::GTE]
    • 등록일시(이하) : cond[등록일시::LTE]
    • 소관기관유형 : cond[소관기관유형::LIKE]
    • 기타 파라미터 : https://www.data.go.kr/data/15113968/openapi.do 참고
  4. 사용한 로직
    /**
     * 정부혜택 서비스 관련 API
     */
    export class PublicService {
    	/**
    	 * @param {string} authkey - data.go.kr 인증 키
    	 */
    	constructor(authkey) {
    		this.authkey = authkey;
    	}
    
    	async getList(opts) {
    
    		const { startDate, endDate, page=1, perPage=9, organ } = opts;
    
    		let conds = [];
    		
    		if(startDate) {
    			const strDate = DateUtil.format('yyyyMMdd', startDate);
    			conds.push(encodeURIComponent('cond[등록일시::GTE]')+`=${strDate}`);
    		} else {
    			const date = new Date();
    			date.setFullYear(date.getFullYear() - 1);
    			date.setMonth(0);
    			date.setDate(1);
    			
    			const strDate = DateUtil.format('yyyyMMdd', date);
    			conds.push(encodeURIComponent('cond[등록일시::GTE]')+`=${strDate}`);
    		}
    
    		if(endDate) {
    			const strDate = DateUtil.format('yyyyMMdd', endDate);
    			conds.push(encodeURIComponent('cond[등록일시::LTE]')+`=${strDate}`);
    		}
    
    		if(organ) {
    			conds.push(encodeURIComponent('cond[소관기관유형::LIKE]')+`=${organ}`);
    		}
    
    		const cond = conds.join('&');
    
    		const fetchUrl = 'https://api.odcloud.kr/api/gov24/v3/serviceList';
    		const url = `${fetchUrl}?serviceKey=${this.authkey}&page=${page}&perPage=${perPage}&${cond}`;
    
    		const res = await fetch(url, {
    			headers: {
    				'accept': 'application/json'
    			}
    		});
    		if (!res.ok) {
    			throw new Error('API 응답 실패');
    		}
    
    		return await res.json();
    	}
    }