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 ,citie_list as cities_impl router = APIRouter() class RotateRequest(BaseModel): id: Optional[int] = None citys: Optional[str] = None @router.post("/rotate") def rotate( req: Optional[RotateRequest] = Body(...), ): # 优先级:Query > Form > JSON client_id = req.id cities = str(req.citys).split(',') # effective_cityhash = req.cityhash # effective_num = req.num result = rotate_impl(client_id=client_id,cities =cities) return result @router.get("/status") def get_status(): return status_impl() @router.get("/cities") def get_cities(): return cities_impl()