Estoy trabajando en una API Restful usando FastAPI y pydantic y postgres. Estoy buscando un diseño de esquema que me permita obtener datos del usuario en solicitudes POST\PUT, enriquecer los datos (valores predeterminados que el usuario no debe establecer u otras columnas que se deducen de los datos dados), y luego insértelo en la base de datos.
El generador de proyectos (ver referencia) sugiere usar esquemas UserCreate\UserUpdate, etc. como entrada para las rutas POST \ PUT. Estos objetos se pasan, a su vez, al método de clase crud que crea/actualiza el objeto en la base de datos. Este diseño no funcionará ya que el método de clase crud necesita más información.
Ejemplo: Para crear un usuario se requiere nombre, altura y peso.
class UserCreate(BaseMethod): name: str height: integer weight: floatModelo de usuario en la base de datos
class User(Model): name = Column() height = Column() weight = Column() bmi = Column()El método Crud necesita obtener el nombre, la altura, el peso y el IMC. ¿Cómo diseño mis esquemas de manera que este proceso sea lo más limpio posible?
PD: este es un ejemplo simple, no estoy buscando una solución en el nivel de la base de datos (supongo que en algunas bases de datos puedo actualizar automáticamente una columna en función de otra columna).
Referencia del generador de proyectos: https://github.com/tiangolo/full-stack-fastapi-postgresql/tree/master
Gracias