【发布时间】:2021-01-01 00:47:01
【问题描述】:
我是 FastAPI 的新手(从 Flask 迁移),我正在尝试为我的 GET 路线创建一个 Pydantic 模型
from fastapi import APIRouter,Depends
from pydantic import BaseModel
from typing import Optional,List
router = APIRouter()
class SortModel(BaseModel):
field: Optional[str]
directions: List[str]
@router.get("/pydanticmodel")
def get_sort(criteria: SortModel = Depends(SortModel)):
pass #my code for handling this route.....
当我运行curl -X GET http://localhost:XXXX/pydanticmodel?directions=up&directions=asc&field=id 时,我得到422 Unprocessable Entity: {"detail":[{"loc":["body"],"msg":"field required","type":"value_error.missing"}]}
但是,如果我要更改 directions:List[str] -> directions: str,我会得到 200 OK 的方向 =“asc”。
str 适用于查询参数而 List[str] 不适用的原因是什么?我做错了什么?
谢谢。
【问题讨论】: