정부혜택 정보 (API 구현)

8 read
고효율 변압기 지원한국전력공사
서비스분야생활안정
신청방법기타 온라인신청||방문신청||직접입력
신청기한상시신청
자세히 보기
인버터제어 공기압축기 지원한국전력공사
서비스분야생활안정
신청방법기타 온라인신청||방문신청||직접입력
신청기한상시신청
자세히 보기
법문화교육서비스 제공대한법률구조공단
서비스분야생활안정
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
채무자대리인(변호사)무료지원사업대한법률구조공단
서비스분야행정·안전
신청방법직접입력
신청기한상시신청
자세히 보기
무료소송대리서비스(반사회적 불법사금융 피해자)대한법률구조공단
서비스분야행정·안전
신청방법직접입력
신청기한○ 불법사금융피해신고센터에 접수된 피해사건 중 민법 제103조 적용이 가능하다고 금융감독원에서 판단하여 이첩한 사건
자세히 보기
무료소송대리서비스(중대재해 피해자 및 유족)대한법률구조공단
서비스분야행정·안전
신청방법직접입력
신청기한「재난 및 안전관리 기본법」 제14조에 따라 중앙재난안전대책본부를 설치·운영하는 재난과 관련하여 중 다수의 피해자가 발생한 사건으로 법무부장관의 요청이 있는 경우
자세히 보기
위기임신 및 보호출산 지원보건복지부
서비스분야임신·출산
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
임산부 외래진료비 본인부담률 경감보건복지부
서비스분야임신·출산
신청방법신청불필요
신청기한상시신청
자세히 보기
전국민 마음투자 지원보건복지부
서비스분야생활안정
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
치매검진 지원보건복지부
서비스분야보건·의료
신청방법방문신청
신청기한상시신청
자세히 보기
자립지원 전담기관 운영보건복지부
서비스분야보육·교육
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
아동 입원진료비 지원보건복지부
서비스분야보건·의료
신청방법신청불필요
신청기한상시신청
자세히 보기
로직 설명
  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();
    	}
    }