我想知道这个问题是否有解决方法。我想使用
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。
您不需要使用
NewType
。只是在做
DefaultQueryType = Annotated[list[str], Query()]
应该可以。