Contenido del curso

Servicios para consultar datos

Resumen

¿Cómo crear un nuevo router en FastAPI?

La creación de routers en FastAPI es crucial para asegurar que nuestras aplicaciones estén bien organizadas y sean fáciles de mantener. Siguiendo la metodología adecuada, podemos dividir efectivamente la lógica de nuestra aplicación. En este caso, iniciaremos revisando un ejemplo de cómo crear un nuevo router para usuarios y servicios.

Proceso de creación de un router

  1. Crear un archivo nuevo: Primero, dentro de la carpeta routers, añadimos un archivo llamado user.py.

  2. Mover la clase y las importaciones necesarias: Dentro de este nuevo archivo, trasladamos la clase de usuario y todas las importaciones requeridas para el funcionamiento del router.

  3. Implementar el router en la aplicación: Reemplazamos app por user_router y luego incluimos este nuevo router en la aplicación usando include_router para que sea funcional.

¿Cómo estructurar los servicios en FastAPI?

Los servicios son componentes esenciales que separan la lógica de negocio de los routers. Implementar servicios no solo mejora la estructura de nuestra aplicación, sino que también facilita su delegación y mantenimiento.

Crear el primer servicio

  1. Establecer la estructura de carpetas: Creamos una carpeta llamada services o servicios, que incluirá un archivo __init__.py.

  2. Definir una clase de servicio: Dentro de un archivo como movi.py en la carpeta de servicios, creamos una clase MoviService que requerirá una sesión de base de datos cada vez que sea invocada.

  3. Acceso a la base de datos: La base de datos se pasará como un parámetro db durante la creación del servicio y se asignará a self.db para permitir su uso en otros métodos de la clase.

Creación de métodos de servicio

Método para obtener películas

  • Definición del método: Creamos un método llamado getMovies que utilizará la sesión de base de datos (db) para ejecutar una consulta.

  • Ejecutar y retornar resultados: Utilizando la consulta, obtenemos todos los datos y los almacenamos en la variable result, la cual será retornada por el método.

Implementación del servicio en un router

  • Importar el servicio: Desde el archivo service.movi, importamos MoviService dentro del router específico de películas.

  • Ejecutar el servicio en el router: En el método dentro del router que obtiene las películas, sustituimos la línea existente para usar MoviService, ejecutando su método getMovies y almacenando el resultado.

¿Cómo implementar un filtro por ID en FastAPI?

Una de las tareas comunes en el manejo de datos es la consulta selectiva a través de filtros. En nuestro caso, se añadirá un filtro por ID para obtener resultados específicos.

Proceso para filtrar por ID

  1. Modificar el servicio existente: Extendemos la clase de servicio anterior para añadir un nuevo método getMovie que requerirá un parámetro ID.

  2. Ejecutar una consulta filtrada: Mediante el uso de filter, aplicamos la condición para que movieModel.id sea igual al ID proporcionado, retornando el primer resultado encontrado.

  3. Integrar en el router: Sustituimos la implementación del router para utilizar este método del servicio, pasando la sesión y el ID necesario.

Verificación y prueba

  • Documentación y pruebas: Una vez hecho el cambio, probamos la implementación para asegurar que el método funciona correctamente, devolviendo el resultado esperado al filtrar por ID.

Próximos pasos: filtro por categoría

Para seguir avanzando, se propone completar el servicio implementando un filtro por categoría. Esto ayudará a personalizar aún más las consultas y permitirá obtener conjuntos de datos más precisos y relevantes.

Recomendaciones

  • Practicar la creación de servicios: Regularmente practicar la creación y modificación de servicios mejorará la habilidad de manejar aplicaciones escalables en FastAPI.

  • Explorar nuevo contenido: Continuar con el aprendizaje de nuevas técnicas, como la implementación de servicios para registrar datos, enriquecerá la comprensión de la infraestructura de APIs.

En resumen, el dominio de routers y servicios en FastAPI es fundamental para crear aplicaciones estructuradas y eficientes. Siguiendo los pasos mencionados, podrás construir aplicaciones robustas y bien organizadas que cumplen con requisitos específicos de la industria.