from typing import List from fastapi import APIRouter, Query, Depends from app.core.redis import get_redis_client from redis.asyncio import Redis from app.schemas.user import UserOut from app.schemas.troov import TroovRate from app.services.troov_service import get_rate_by_date # 公共路由 public_router = APIRouter(prefix="/api", tags=["troov"]) @public_router.get("/ping") def ping(): return {"message": "pong"} # 受保护路由 protected_router = APIRouter(prefix="/api", tags=["troov"]) @protected_router.get("/users", response_model=List[UserOut]) def get_users(): return [ {"id": 1, "name": "Alice"}, {"id": 2, "name": "Bob"} ] @protected_router.get("/troov/rate", response_model=List[TroovRate]) def troov_rate(date: str = Query(..., description="查询的日期, 格式: YYYY-MM-DD"), redis_client: Redis = Depends(get_redis_client)): # 调用 service 层获取数据 return get_rate_by_date(redis_client, date)