0

我正在使用 FastAPI,我正在尝试将 JSON 对象的 JSON 数组发送到我的 post 端点,在正文中。我的端点定义为:

@router.post("/create_mails")
def create_mails(notas: List[schemas.Nota], db: Session = Depends(get_db)):

我在 Postman 中的身体看起来像:

{
    "notas": [{"a":"1","b":"2","c":"3","d":"4"},
              {"a":"1","b":"2","c":"3","d":"4"}]
}

但是,我不断收到来自 FastAPI 的 422 unprocessable entity 错误,错误详细信息:
value is not a valid list

我还使用修改后的端点对其进行了测试:

@router.post("/create_mails")
def create_mails(notas: List[str] = Body([]), db: Session = Depends(get_db)):

并使用简单的字符串数组,但返回相同的错误。

我是否缺少 FastAPI 对有效列表的定义?

4

1 回答 1

4

我很确定您的 POST 方法参数需要对整个请求主体进行建模,这确实是一个对象,而不是一个列表。
要匹配您要发送的正文,您需要以下内容:

class NotaList(BaseModel):
    notas: List[Nota]

进而:

def create_mails(notas: schemas.NotaList) 
于 2020-09-07T22:02:47.443 回答