정부혜택 정보 (API 구현)

21 read
HACCP 인증(연장) 신청 절차 안내한국식품안전관리인증원
서비스분야행정·안전
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
신복위 소액금융 보증서민금융진흥원
서비스분야생활안정
신청방법직접입력
신청기한상시신청
자세히 보기
청년미래적금서민금융진흥원
서비스분야생활안정
신청방법직접입력
신청기한'26.6월 출시
자세히 보기
미소금융 청년 미래이음 대출서민금융진흥원
서비스분야생활안정
신청방법방문신청
신청기한상시신청
자세히 보기
소상공인 특례 햇살론카드서민금융진흥원
서비스분야생활안정
신청방법직접입력
신청기한상시신청
자세히 보기
햇살론특례서민금융진흥원
서비스분야생활안정
신청방법직접입력
신청기한상시신청
자세히 보기
농식품산업 해외진출지원농림축산식품부
서비스분야생활안정
신청방법방문신청
신청기한상시신청
자세히 보기
식물백신품질고도화지원농림축산식품부
서비스분야농림축산어업
신청방법방문신청||직접입력
신청기한접수기관 별 상이
자세히 보기
그린바이오 제품 상용화 지원농림축산식품부
서비스분야생활안정
신청방법기타 온라인신청||방문신청||직접입력
신청기한세부계획 확정 후 결정
자세히 보기
은퇴고령농 농지이양은퇴직불금 지급농림축산식품부
서비스분야농림축산어업
신청방법방문신청
신청기한상시신청
자세히 보기
가축(오리) 사육제한 보상금 지급농림축산식품부
서비스분야농림축산어업
신청방법방문신청
신청기한접수기관 별 상이
자세히 보기
한우 암소 난소결찰, 난소적출 시술비용 지원농림축산식품부
서비스분야농림축산어업
신청방법방문신청
신청기한상시신청
자세히 보기
로직 설명
  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();
    	}
    }