정부혜택 정보 (API 구현)

12 read
환경보건이용권 지급한국환경산업기술원
서비스분야문화·환경
신청방법기타 온라인신청
신청기한매년 신청시기가 상이하므로, 환경보건이용권시스템에서 확인 가능
자세히 보기
나눔티켓한국문화예술위원회
서비스분야문화·환경
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
통합문화이용권(문화누리카드) 서비스한국문화예술위원회
서비스분야문화·환경
신청방법기타 온라인신청||방문신청
신청기한2025.02.03~2025.11.28
자세히 보기
사회적 배려대상자 도시가스요금 경감한국가스공사
서비스분야생활안정
신청방법방문신청
신청기한상시신청
자세히 보기
위탁진료 지원한국보훈복지의료공단
서비스분야보건·의료
신청방법신청불필요
신청기한해당 서비스는 신청없이 자격대상자에게 자동적으로 제공됩니다.
자세히 보기
체육인 복지 지원(교육지원금)서울올림픽기념국민체육진흥공단
서비스분야보육·교육
신청방법기타 온라인신청||직접입력
신청기한국민체육진흥공단 공지사항 사업공고 내 신청시기 기재
자세히 보기
양육비 이행 지원 서비스성평등가족부
서비스분야보호·돌봄
신청방법기타 온라인신청||방문신청
신청기한상시신청
자세히 보기
양육비 선지급 지원성평등가족부
서비스분야생활안정
신청방법기타 온라인신청
신청기한상시신청
자세히 보기
가정 밖 청소년 자립지원성평등가족부
서비스분야주거·자립
신청방법방문신청
신청기한상시신청
자세히 보기
청소년회복지원시설운영성평등가족부
서비스분야주거·자립
신청방법직접입력
신청기한상시신청
자세히 보기
결혼이민자 역량강화지원성평등가족부
서비스분야보육·교육
신청방법방문신청
신청기한접수기관 별 상이
자세히 보기
진로설계 지원성평등가족부
서비스분야생활안정
신청방법방문신청
신청기한상시신청
자세히 보기
로직 설명
  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();
    	}
    }