Creación de servicios y endpoints en FastAPI con Docker
Clase 8 de 25 • Curso de Cursor AI Code Editor
Resumen
Ya avanzado en la configuración de una aplicación web backend con FastAPI, es momento de ver en detalle cómo se crean y validan endpoints pensando en una estructura modular y organizada. El uso de Docker para ejecutar comandos y debuggear Python ofrece varias ventajas, como verificar fácilmente el éxito de migraciones de base de datos y establecer puntos de control rápidos.
¿Cómo utilizo Docker para ejecutar comandos?
Con Docker, los comandos dentro del contenedor se ejecutan utilizando docker exec
. Esta funcionalidad está disponible directamente desde un archivo Makefile
, facilitando tareas frecuentes como ejecutar migraciones o cargar datos iniciales (seeders).
Dentro del contenedor también existe un archivo llamado test info
diseñado para verificar el resultado de migraciones y la correcta inserción de datos. Este archivo permite establecer breakpoints mediante la extensión Python de Microsoft, facilitando revisar detalladamente la ejecución.
¿Qué es un servicio en FastAPI y cómo lo estructuro?
Crear endpoints directamente en funciones FastAPI puede volver la aplicación compleja rápidamente. Para evitar esto, es recomendable usar servicios que sean abstracciones a función específica del endpoint.
En este contexto se creó un nuevo folder denominado services
, el cual alberga al servicio course service
. Dicho servicio incluye dos métodos:
get_all_courses
: retorna una lista completa de cursos registrados.get_course_by_slook
: detalla información específica de un curso utilizando un identificador único (slook).
Este servicio utiliza los modelos que previamente establecimos para acceder de forma directa a la base de datos. Además, se guió estrictamente por especificaciones definidas inicialmente en el archivo de contratos (00-contracts.md
).
¿Cómo verifico mis endpoints creados en FastAPI?
Una vez hechos los endpoints, es crucial verificar su funcionalidad. Accediendo al navegador y ejecutando las rutas /courses
y /courses/{slook}
, podemos comprobar fácilmente que los endpoints devuelvan los resultados esperados. Así, validamos tanto funcionamiento de lógica interna como interacción con base de datos.
El resultado debe ser:
- Listado completo de cursos.
- Detalle específico del curso solicitado mediante un identificador.
Para complementar la verificación manual, se revisan también:
- Correcta importación de servicios.
- Modificación adecuada de archivos necesarios, como el inicializador en el módulo de servicios.
Una vez comprobado que todas estas piezas funcionan correctamente, habremos garantizado la calidad y organización interna de la aplicación backend diseñada con FastAPI y Docker.
¿Qué retos encontraste al seguir estos pasos? Comparte tus soluciones en comentarios.