정부혜택 정보 (API 구현)

3 read
특화창업패키지창업진흥원
서비스분야고용·창업
신청방법기타 온라인신청
신청기한세부사항은 모집공고문 참조
자세히 보기
창업도약패키지창업진흥원
서비스분야고용·창업
신청방법기타 온라인신청
신청기한세부사항은 모집공고문 참조
자세히 보기
초기창업패키지창업진흥원
서비스분야고용·창업
신청방법기타 온라인신청
신청기한세부사항은 모집공고문 참조
자세히 보기
건설노동자 휴양소지원건설근로자공제회
서비스분야문화·환경
신청방법기타 온라인신청||방문신청||직접입력
신청기한접수기관 별 상이
자세히 보기
지역신문 무료 구독 지원한국언론진흥재단
서비스분야문화·환경
신청방법정부24온라인신청||직접입력
신청기한2026. 2. 24~3. 10
자세히 보기
조기폐차 지원한국환경공단
서비스분야문화·환경
신청방법기타 온라인신청||직접입력
신청기한접수기관 별 상이
자세히 보기
중소기업 기술보호 법무지원단중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
중소기업 기술분쟁 조정중재중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
통합기술보호지원반중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
재도약지원자금중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청||방문신청
신청기한접수기관 별 상이
자세히 보기
중소기업 기술보호 정책보험 지원사업중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
중소기업 손해액 산정 지원사업중소벤처기업부
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
로직 설명
  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();
    	}
    }