我正在使用FastAPI,有一些类似于以下这样的端点:
@app.get("/REDS/")
def query_REDS( request: Request, lighter: Optional[bool] = False, darker: Optional[bool] = False, inverse: Optional[bool] = False, amount: Optional[int] = 10):
pass # Work done here
@app.get("/BLUES/")
def query_BLUES( request: Request, lighter: Optional[bool] = False, darker: Optional[bool] = False, inverse: Optional[bool] = False, amount: Optional[int] = 10):
pass # Work done here
@app.get("/GREENS/")
def query_GREENS( request: Request, lighter: Optional[bool] = False, darker: Optional[bool] = False, inverse: Optional[bool] = False, amount: Optional[int] = 10):
pass # Work done here
这在Swagger UI中的显示如下:
![](https://istack.dev59.com/lGILq.webp)
我尝试使用 pydantic BaseModel 定义一个输入模型:
class Arguments(BaseModel):
lighter: Optional[bool] = False
darker: Optional[bool] = False
inverse: Optional[bool] = False
amount: Optional[int] = 10
@app.get("/REDS/")
def query_REDS( request: Request, arguments: Arguments):
pass # Work done here
@app.get("/BLUES/")
def query_BLUES( request: Request, arguments: Arguments):
pass # Work done here
@app.get("/GREENS/")
def query_GREENS( request: Request, arguments: Arguments):
pass # Work done here.
但这并不是我想要的,首先因为在GET请求中使用body不被推荐且不被所有地方支持,其次因为它在Swagger UI中并不是那么有用:
![](https://istack.dev59.com/on2JS.webp)