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

317
Visualizações
La solicitud de obtención de FastApi muestra un error de validación

Recibo este error cuando intento obtener algunos datos de mi base de datos postgre y uso fastapi.

ingrese la descripción de la imagen aquí

No sé por qué sucede... pero aquí está mi código, gracias por su ayuda.

Ruta

 @router.get("/fuentes", response_model=FuenteSerializer.MFuente) # <--- WHEN I REMOVE RESPONSE_MODEL WORKS AND RETURNS A JSON DATA DIRECTLY FROM MODEL I GUESS async def read_fuentes(skip: int = 0, limit: int = 100, db: Session = Depends(get_db)): fuentes = FuenteSerializer.get_fuente(db, skip=skip, limit=limit) return fuentes

modelo de sqlalchemy

 class MFuente(Base): __tablename__ = 'M_fuentes' idfuentes = Column(Integer, primary_key=True) idproductos = Column(ForeignKey('M_productos.idproductos', ondelete='RESTRICT', onupdate='RESTRICT'), index=True) autoapp = Column(CHAR(2)) rutFabricante = Column(String(12)) elemento = Column(String(100)) estado = Column(Integer) stype = Column(Integer) aql = Column(String(5)) equiv = Column(String(5)) division = Column(String(100)) nu = Column(Integer) filexcel = Column(String(100)) M_producto = relationship('MProducto')

Serializador/esquema

 class MFuente(BaseModel): idfuentes: int autoapp: str fecregistro: datetime.date rutFabricante: str elemento: str estado: int stype: int aql: str equiv: str division: str fileexel: str productos: List[MProducto] class Config: orm_mode = True def get_fuente(db: Session, skip: int = 0, limit: int = 100): return db.query(Fuente).offset(skip).limit(limit).all()
over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Para un poco de depuración, creé el mismo pequeño prototipo y encontré algunas respuestas posibles.

En primer lugar, aquí está la aplicación que creé:

 class MFuente(BaseModel): name: str value: int @app.get("/items/{name}", response_model=MFuente) async def get_item(name: str): query = fuente_db.select().where(fuente_db.c.name == name) return await database.fetch_all(query)

Así que con este esquema obtengo el mismo error.

 response -> name field required (type=value_error.missing) response -> value field required (type=value_error.missing)

Así que depuré un poco más y descubrí que se trata de response_model, así que se me ocurrió esto:

 from typing import List ... @app.get("/items/{name}", response_model=List[MFuente])

Todo empezó a funcionar:

 INFO: 127.0.0.1:52872 - "GET /items/masteryoda HTTP/1.1" 200 OK

Entonces, en su caso, la solución será:

 @router.get("/fuentes", response_model=List[FuenteSerializer.MFuente]) ^^^^
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