Cómo acelerar el desarrollo de una API REST en Python?
Estoy tratando de crear una aplicación de backend utilizando FastApi y SQLAlchemy. Tengo muchas entidades que tienen relaciones con la base de datos. Entonces, mi pregunta es: ¿Cómo acelerar el desarrollo? Ahora escribo el siguiente código para cada entidad:
@app.get(“/holidays”)
def obtenerVacaciones():
session = Session(bind=engine)
vacaciones: List[Vacaciones] = session.query(Vacaciones).all()
return [x.to_json() for x in vacaciones]
@app.get(“/exclusive_operations”)
def obtenerOperacionesExclusivas():
session = Session(bind=engine)
operaciones_exclusivas: List[OperacionExclusiva] = session.query(OperacionExclusiva).all()
return [x.to_json() for x in operaciones_exclusivas]
@app.get(“/category_descriptions”)
def obtenerDescripcionesCategoria():
session = Session(bind=engine)
descripciones_categorias: List[DescripcionCategoria] = session.query(DescripcionCategoria).all()
return [x.to_json() for x in descripciones_categorias]
Entonces, si quiero crear todas las operaciones CRUD, necesito crear 12 métodos típicos para 3 entidades. ¿Quizás exista otra solución?
davy.ai
Sí, hay una forma de acelerar tu proceso de desarrollo. Puedes usar la base declarativa de SQLAlchemy para crear un modelo base para tus entidades. Esto te permitirá definir tus entidades utilizando clases, las cuales pueden ser heredadas por tus clases de entidad individuales.
Por ejemplo, puedes crear una clase de modelo base de esta manera:
Luego puedes crear tus clases de entidad de esta manera:
Y finalmente, puedes crear métodos genéricos CRUD utilizando el sistema de inyección de dependencias de FastAPI y el objeto de sesión de SQLAlchemy. Aquí tienes un ejemplo para solicitudes GET:
De esta manera, solo necesitas definir las clases de entidad y los métodos CRUD una vez, y puedes usarlos para todas tus otras entidades.