정부혜택 정보 (API 구현)

14 read
수출바우처 지원중소벤처기업진흥공단
서비스분야고용·창업
신청방법기타 온라인신청
신청기한(1차) 2025. 12. 17. ~ 2026. 1. 9., (2차) 2026. 4. 17 ~ 2026. 5. 6., (3차) 2026.6월 예정
자세히 보기
TV홈쇼핑 판로지원주식회사공영홈쇼핑
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
HACCP관련 정보 제공 및 인증서 발급 발급 안내한국식품안전관리인증원
서비스분야행정·안전
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
식품 및 축산물 위생검사한국식품안전관리인증원
서비스분야행정·안전
신청방법신청불필요
신청기한유선연락필요
자세히 보기
축산물 HACCP교육 안내한국식품안전관리인증원
서비스분야보육·교육
신청방법기타 온라인신청||직접입력
신청기한연간 교육일정 참고
자세히 보기
축산물 위생교육 안내한국식품안전관리인증원
서비스분야보육·교육
신청방법기타 온라인신청
신청기한연간 교육일정 참고
자세히 보기
스마트팜 현장실습형 교육농림축산식품부
서비스분야농림축산어업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
농촌관계인구 형성 지원(농촌형 워케이션)농림축산식품부
서비스분야농림축산어업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
영농도우미 지원농림축산식품부
서비스분야농림축산어업
신청방법방문신청
신청기한상시신청
자세히 보기
전략작물직불농림축산식품부
서비스분야농림축산어업
신청방법방문신청
신청기한접수기관 별 상이
자세히 보기
농촌취약계층주거개선농림축산식품부
서비스분야주거·자립
신청방법방문신청
신청기한접수기관 별 상이
자세히 보기
맞춤형농지지원사업농림축산식품부
서비스분야농림축산어업
신청방법기타 온라인신청||방문신청
신청기한예산범위내 상시신청
자세히 보기
로직 설명
  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();
    	}
    }