Estoy usando FastAPI y estoy tratando de enviar una matriz JSON de objetos JSON a mi punto final de publicación, en el cuerpo. Mi punto final se define como:
@router.post("/create_mails") def create_mails(notas: List[schemas.Nota], db: Session = Depends(get_db)):Mi cuerpo en Postman se parece a:
{ "notas": [{"a":"1","b":"2","c":"3","d":"4"}, {"a":"1","b":"2","c":"3","d":"4"}] } Sin embargo, sigo recibiendo el error de entidad no procesable 422 de FastAPI, con el detalle del error:
el valor no es una lista válida
También lo probé con un punto final modificado:
@router.post("/create_mails") def create_mails(notas: List[str] = Body([]), db: Session = Depends(get_db)):y con una matriz de cadenas simple, pero se devuelve el mismo error.
¿Me falta la definición de FastAPI de una lista válida?
Estoy bastante seguro de que su parámetro de método POST necesita modelar todo el cuerpo de la solicitud, que de hecho es un solo objeto, y no una lista.
Para que coincida con el cuerpo que está tratando de enviar, necesitaría algo como:
class NotaList(BaseModel): notas: List[Nota]y entonces:
def create_mails(notas: schemas.NotaList)