使用 NewType 通过 FastAPI 进行参数验证时出现问题

问题描述 投票:0回答:1

我想知道这个问题是否有解决方法。我想使用

NewType
来定义和验证查询参数,如下所示:

DefaultQueryType = NewType("DefaultQueryType", Annotated[list[str], Query()])


@app.get("/items/")
async def read_items(q: DefaultQueryType):
    query_items = {"q": q}
    return query_items

但我收到错误

422 Error: Unprocessable Entity
- 输入应该是有效的列表。

有谁知道这个问题的解决方法,这样定义的新类型可以在多个地方使用,而不必每次都将其写为函数参数?

我检查了FastAPI github,但似乎仍然是一个问题https://github.com/fastapi/fastapi/discussions/8214#discussioncomment-5148270

python-3.x fastapi
1个回答
0
投票

您不需要使用

NewType
。只是在做

DefaultQueryType = Annotated[list[str], Query()]

应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.