Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

724
Visualizações
Error "Hubo un error al analizar el cuerpo" al solicitar el punto final en FastAPI

Implementé un punto final en FastAPI y lo estoy probando desde Postman. Pero cada vez que envío una solicitud, aparece este error "Hubo un error al analizar el cuerpo", mientras buscaba el error, encontré una solución en algún lugar que necesito tener instalado python-multipart, este paquete ya está instalado pero todavía estoy enfrentando esto error. El siguiente es mi código:

 @router.put('/user') def update_user(user_data: dict): from crain.uma import update_user user_id = user_data['id'] update_user(user_id, user_data) return {"message": "DONE"}

El punto final, excepto un dictado como este:

 user_data = { "username":"admin", "id":"2d06aa3b-c25a-4499-948a-86341ac4adc5", "email":null, "firstName":"admin", "lastName":"admin", "createdTimestamp":1638268009973 },

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

over 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

en cartero, cambie a datos raw (actualmente está en form-data ).
luego inserte su carga útil deseada:

 { "username":"admin", "id":"2d06aa3b-c25a-4499-948a-86341ac4adc5", "email":null, "firstName":"admin", "lastName":"admin", "createdTimestamp":1638268009973 }

y disparar la solicitud.

Por cierto, cuando dices

El punto final, excepto un dictado como este:

 user_data = { "username":"admin", "id":"2d06aa3b-c25a-4499-948a-86341ac4adc5", "email":null, "firstName":"admin", "lastName":"admin", "createdTimestamp":1638268009973 },

en realidad quiere decir que el punto final espera solo la parte del diccionario, porque user_data es simplemente un nombre de variable en su código python, completamente sin relación con ninguna configuración de solicitud.
la razón por la que lo especifico es porque lo escribiste como una key para los form-data de solicitud del cartero (la imagen que subiste)

over 4 years ago · Santiago Trujillo Relatório

0

En resumen, su punto final espera datos JSON , pero su cliente envía form-data su lugar. Por lo tanto, al enviar la solicitud, seleccione datos raw en su lugar.

Además, recomendaría encarecidamente utilizar modelos Pydantic para enviar datos JSON, como se describe en la documentación . Así, puedes hacer uso de la validación de datos que ofrece Pydantic. Incluso puede usar el tipo EmailStr para validar las entradas de correo electrónico (requiere que se instale el validador de correo electrónico , como se describe en la documentación ). Ejemplo a continuación:

 from pydantic import BaseModel, EmailStr from datetime import datetime class User(BaseModel): username: str id: str email: EmailStr = None firstName: str lastName: str createdTimestamp: datetime @app.put('/user') def update_user(user_data: User): from crain.uma import update_user user_data = user_data.dict() user_id = user_data['id'] update_user(user_id, user_data) return {"message": "DONE"}

La carga útil de JSON debería verse así:

 { "username":"admin", "id":"2d06aa3b-c25a-4499-948a-86341ac4adc5", "email":null, "firstName":"admin", "lastName":"admin", "createdTimestamp":1638268009973 }
over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda