External API Proxy

외부 API 서버 경계

클라이언트는 /api/weather만 호출하고, Route Handler가 도시 입력, OPENWEATHER_API_KEY, 외부 응답, 내부 JSON 모양을 모두 관리합니다.

1

입력 확인

city가 없으면 외부 API를 호출하지 않고 400으로 끝냅니다.

?city=Seoul
2

비밀 키 결합

API 키는 서버에서만 읽어 OpenWeatherMap 요청에 붙입니다.

process.env
3

외부 응답 판정

response.ok가 아니면 외부 상태를 내부 오류로 변환합니다.

response.ok
4

데이터 정규화

temperature, humidity, description처럼 화면 필드만 남깁니다.

processedData
5

운영 보호

속도 제한, 캐시, 재시도 정책으로 요금과 실패를 제어합니다.

revalidate
Client state

클라이언트는 화면 상태에 집중

입력값, loading, error, weather 상태를 관리하고 외부 API 키나 원본 URL은 알지 못합니다.

fetch("/api/weather?city=Seoul")
상황
Route Handler
상태 코드
화면 처리
city 누락
외부 호출 전 차단
400
입력 안내
키 누락
서버 설정 오류 기록
500
일반 오류 메시지
도시 없음
외부 오류를 내부 JSON으로 매핑
404
검색 실패 표시
성공
필드 정규화 후 반환
200
날씨 카드 갱신