from typing import Optional from fastapi import APIRouter, Body, Query, Form,Request from pydantic import BaseModel from ..rotation_service import rotate as rotate_impl, status as status_impl router = APIRouter() class RotateRequest(BaseModel): cityhash: Optional[str] = None num: Optional[int] = None @router.post("/rotate") def rotate( req: Optional[RotateRequest] = Body(...), ): # 优先级:Query > Form > JSON effective_cityhash = req.cityhash effective_num = req.num result = rotate_impl(cityhash=effective_cityhash, num=effective_num) return result @router.get("/status") def get_status(): return status_impl()