39 lines
1.1 KiB
TypeScript
39 lines
1.1 KiB
TypeScript
/**
|
|
* OpenAPI 프록시 라우트
|
|
* - 외부 API 호출을 프록시하는 라우트
|
|
*/
|
|
|
|
import { Router } from 'express';
|
|
import { OpenApiProxyController } from '../controllers/openApiProxyController';
|
|
// import { authenticateToken } from '../middleware/authMiddleware'; // 공개 API는 인증 불필요
|
|
|
|
const router = Router();
|
|
const controller = new OpenApiProxyController();
|
|
|
|
// 날씨, 환율 등 공개 정보는 인증 없이 접근 가능
|
|
// router.use(authenticateToken);
|
|
|
|
/**
|
|
* GET /api/open-api/weather
|
|
* 날씨 정보 조회 (인증 불필요)
|
|
* Query: city (도시명, 기본값: Seoul)
|
|
*/
|
|
router.get('/weather', (req, res) => controller.getWeather(req, res));
|
|
|
|
/**
|
|
* GET /api/open-api/exchange-rate
|
|
* 환율 정보 조회
|
|
* Query: base (기준 통화, 기본값: KRW), target (대상 통화, 기본값: USD)
|
|
*/
|
|
router.get('/exchange-rate', (req, res) => controller.getExchangeRate(req, res));
|
|
|
|
/**
|
|
* POST /api/open-api/geocode
|
|
* 주소를 좌표로 변환 (Geocoding)
|
|
* Body: { address: string }
|
|
*/
|
|
router.post('/geocode', (req, res) => controller.geocode(req, res));
|
|
|
|
export default router;
|
|
|