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 client_id = req.id # effective_cityhash = req.cityhash # effective_num = req.num result = rotate_impl(client_id=client_id) return result @router.get("/status") def get_status(): return status_impl()