정부혜택 정보 (API 구현)

3 read
무료소송대리서비스(사업용 화물차 운전자)대한법률구조공단
서비스분야생활안정
신청방법기타 온라인신청||방문신청||직접입력
신청기한상시신청
자세히 보기
무료소송대리서비스(전기통신 금융사기 피해자(보이스피싱 피해자)대한법률구조공단
서비스분야행정·안전
신청방법기타 온라인신청||방문신청||직접입력
신청기한상시신청
자세히 보기
유망창업기업 성장 지원 프로그램신용보증기금
서비스분야생활안정
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
무탄소에너지보증신용보증기금
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
녹색 공정전환 보증신용보증기금
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
중소 중견기업팩토링신용보증기금
서비스분야고용·창업
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
발달장애인 긴급돌봄 시범사업보건복지부
서비스분야보호·돌봄
신청방법직접입력
신청기한상시신청
자세히 보기
노인 안검진 및 개안수술보건복지부
서비스분야보건·의료
신청방법방문신청
신청기한상시신청
자세히 보기
경계선지능아동 맞춤형 사례관리서비스보건복지부
서비스분야보육·교육
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
장기요양급여비용 본인부담금 감경보건복지부
서비스분야보호·돌봄
신청방법방문신청
신청기한상시신청
자세히 보기
기초연금 수급자 확인서보건복지부
서비스분야행정·안전
신청방법기타 온라인신청||방문신청
신청기한상시신청
자세히 보기
일상돌봄 서비스보건복지부
서비스분야생활안정
신청방법기타 온라인신청||방문신청
신청기한접수기관 별 상이
자세히 보기
로직 설명
  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();
    	}
    }