ERP-node/backend-node/API_연동_가이드.md

4.0 KiB

🔌 API 연동 가이드

📊 현재 상태

작동 중인 API

  1. 기상청 특보 API (완벽 작동!)

    • API 키: ogdXr2e9T4iHV69nvV-IwA
    • 상태: 14건 실시간 특보 수신 중
    • 제공 데이터: 대설/강풍/한파/태풍/폭염 특보
  2. 한국은행 환율 API (완벽 작동!)

    • API 키: OXIGPQXH68NUKVKL5KT9
    • 상태: 환율 위젯 작동 중

⚠️ 더미 데이터 사용 중

  1. 교통사고 정보

    • 한국도로공사 API: 서버 호출 차단
    • 현재 상태: 더미 데이터 (2건)
  2. 도로공사 정보

    • 한국도로공사 API: 서버 호출 차단
    • 현재 상태: 더미 데이터 (2건)

🚀 실시간 교통정보 연동하기

📌 국토교통부 ITS API (추천!)

1단계: API 신청

  1. https://www.data.go.kr/ 접속
  2. 검색: "ITS 돌발정보" 또는 "실시간 교통정보"
  3. 활용신청 클릭
  4. 승인 대기 (1~2일)

2단계: API 키 추가

승인 완료되면 .env 파일에 추가:

# 국토교통부 ITS API 키
ITS_API_KEY=발급받은_API_키

3단계: 서버 재시작

docker restart pms-backend-mac

4단계: 확인

  • 로그에서 ✅ 국토교통부 ITS 교통사고 API 응답 수신 완료 확인
  • 더미 데이터 대신 실제 데이터가 표시됨!

🔍 한국도로공사 API 문제

발급된 키

EXWAY_API_KEY=7820214492

문제 상황

  • 서버/백엔드에서 호출 시: Request Blocked (400)
  • curl 명령어: Request Blocked
  • 모든 엔드포인트 차단됨

가능한 원인

  1. 브라우저에서만 접근 허용

    • Referer 헤더 검증
    • User-Agent 검증
  2. IP 화이트리스트

    • 특정 IP에서만 접근 가능
    • 서버 IP 등록 필요
  3. API 키 활성화 대기

    • 발급 후 승인 대기 중
    • 몇 시간~1일 소요

해결 방법

  1. 한국도로공사 담당자 문의 (054-811-4533)
  2. 국토교통부 ITS API 사용 (더 안정적)

📝 코드 구조

다중 API 폴백 시스템

// 1순위: 국토교통부 ITS API
if (process.env.ITS_API_KEY) {
  try {
    // ITS API 호출
    return itsData;
  } catch {
    console.log('2순위 API로 전환');
  }
}

// 2순위: 한국도로공사 API
try {
  // 한국도로공사 API 호출
  return exwayData;
} catch {
  console.log('더미 데이터 사용');
}

// 3순위: 더미 데이터
return dummyData;

파일 위치

  • 서비스: backend-node/src/services/riskAlertService.ts
  • 컨트롤러: backend-node/src/controllers/riskAlertController.ts
  • 라우트: backend-node/src/routes/riskAlertRoutes.ts

💡 현재 대시보드 위젯 데이터

리스크/알림 위젯

✅ 날씨특보: 14건 (실제 기상청 데이터)
⚠️ 교통사고: 2건 (더미 데이터)
⚠️ 도로공사: 2건 (더미 데이터)
─────────────────────────
총 18건의 알림

개선 후 (ITS API 연동 시)

✅ 날씨특보: 14건 (실제 기상청 데이터)
✅ 교통사고: N건 (실제 ITS 데이터)
✅ 도로공사: N건 (실제 ITS 데이터)
─────────────────────────
총 N건의 알림 (모두 실시간!)

🎯 다음 단계

단기 (지금)

  • 기상청 특보 API 연동 완료
  • 한국은행 환율 API 연동 완료
  • 다중 API 폴백 시스템 구축
  • 국토교통부 ITS API 신청

장기 (향후)

  • 서울시 TOPIS API 추가 (서울시 교통정보)
  • 경찰청 교통사고 정보 API (승인 필요)
  • 기상청 단기예보 API 추가

📞 문의

한국도로공사

  • 전화: 054-811-4533 (컨텐츠 문의)
  • 전화: 070-8656-8771 (시스템 장애)

공공데이터포털


작성일: 2025-10-14 작성자: AI Assistant 상태: 기상청 특보 작동 중, ITS API 연동 준비 완료