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

585
Visualizações
Parámetros de consulta del modelo pydantic

¿Hay alguna forma de convertir un modelo pydantic en parámetros de consulta en fastapi?

Algunos de mis puntos finales pasan parámetros a través del cuerpo, pero otros los pasan directamente en la consulta. Todos estos puntos finales comparten el mismo modelo de datos, por ejemplo:

 class Model(BaseModel): x: str y: str

Me gustaría evitar duplicar mi definición de este modelo en la definición de mis "puntos finales de parámetros de consulta", como por ejemplo test_query en este código:

 class Model(BaseModel): x: str y: str @app.post("/test-body") def test_body(model: Model): pass @app.post("/test-query-params") def test_query(x: str, y: str): pass

¿Cuál es la forma más limpia de hacer esto?

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

0

La documentación da un atajo para evitar este tipo de repeticiones. En este caso, daría:

 from fastapi import Depends @app.post("/test-query-params") def test_query(model: Model = Depends()): pass

Esto le permitirá solicitar /test-query-params?x=1&y=2 y también producirá la descripción correcta de OpenAPI para este punto final.

Se pueden usar soluciones similares para usar modelos Pydantic como descriptores de datos de formulario.

over 4 years ago · Santiago Trujillo Relatório

0

Esta solución es muy adecuada si su esquema es "mínimo" .

Pero, cuando se trata de uno complicado como este, establezca la descripción del parámetro de consulta en el documento swagger usando el modelo Pydantic , es mejor usar una "clase de dependencia personalizada"

 from fastapi import Depends, FastAPI, Query app = FastAPI() class Model: def __init__( self, y: str, x: str = Query( default='default for X', title='Title for X', deprecated=True ) ): self.x = x self.y = y @app.post("/test-body") def test_body( model: Model = Depends() ): return model

Si está utilizando este método, tendrá más control sobre el documento de OpenAPI.

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