router.py 981 B

123456789101112131415161718192021222324252627282930
  1. from typing import List
  2. from fastapi import APIRouter, Query, Depends
  3. from app.core.redis import get_redis_client
  4. from redis.asyncio import Redis
  5. from app.schemas.user import UserOut
  6. from app.schemas.troov import TroovRate
  7. from app.services.troov_service import get_rate_by_date
  8. # 公共路由
  9. public_router = APIRouter(prefix="/api", tags=["troov"])
  10. @public_router.get("/ping")
  11. def ping():
  12. return {"message": "pong"}
  13. # 受保护路由
  14. protected_router = APIRouter(prefix="/api", tags=["troov"])
  15. @protected_router.get("/users", response_model=List[UserOut])
  16. def get_users():
  17. return [
  18. {"id": 1, "name": "Alice"},
  19. {"id": 2, "name": "Bob"}
  20. ]
  21. @protected_router.get("/troov/rate", response_model=List[TroovRate])
  22. def troov_rate(date: str = Query(..., description="查询的日期, 格式: YYYY-MM-DD"),
  23. redis_client: Redis = Depends(get_redis_client)):
  24. # 调用 service 层获取数据
  25. return get_rate_by_date(redis_client, date)