FastAPI 发现我的 JSON 对象数组是一个无效列表
FastAPI finds my JSON array of objects an invalid list
我正在使用 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 无法处理的实体错误,错误详细信息:
值不是有效列表
我还使用修改后的端点对其进行了测试:
@router.post("/create_mails")
def create_mails(notas: List[str] = Body([]), db: Session = Depends(get_db)):
和一个简单的字符串数组,但返回相同的错误。
我是否遗漏了 FastAPI 对有效列表的定义?
我很确定你的 POST 方法参数需要对整个请求主体建模,它确实是一个对象,而不是列表。
要匹配您要发送的正文,您需要类似以下内容:
class NotaList(BaseModel):
notas: List[Nota]
然后:
def create_mails(notas: schemas.NotaList)
我正在使用 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 无法处理的实体错误,错误详细信息:
值不是有效列表
我还使用修改后的端点对其进行了测试:
@router.post("/create_mails")
def create_mails(notas: List[str] = Body([]), db: Session = Depends(get_db)):
和一个简单的字符串数组,但返回相同的错误。
我是否遗漏了 FastAPI 对有效列表的定义?
我很确定你的 POST 方法参数需要对整个请求主体建模,它确实是一个对象,而不是列表。
要匹配您要发送的正文,您需要类似以下内容:
class NotaList(BaseModel):
notas: List[Nota]
然后:
def create_mails(notas: schemas.NotaList)