by Juan Renato Noh
El reto de hoy consiste en llevar una idea de la teoría a la práctica lo más rápido posible con los siguientes objetivos en mente
Concepto: Identificar una problemática o necesidad .
Idea : Encontrar la solución e implementarla mediante un prototipo , el cual debe ser desarrollado y desplegado.
Cuando se inicia un sistema, siempre se necesitan catálogos básicos. Para no complicarnos demasiado, decidí enfocarme en uno de los más comunes: “Días inhábiles”.
Aunque ya hay opciones en el mercado , usualmente se tiende a desarrollar de nuevo o agregar cada vez un desarrollo nuevo .
Con una búsqueda rápida, encontramos la fuente oficial de fechas inhábiles:
https://www.gob.mx/profedet/articulos/dias-de-descanso-obligatorio-2025
Pensando en la funcionalidad mínima, se debe permitir:
En cuestión de la tecnología inicialmente consideré Flask, pero después de repasar algunos videos y recordar la importancia de la documentación automática y la rapidez de desarrollo, decidí experimentar con FastAPI.
Con FastAPI crear el proyecto es relativamente sencillo gracias a la sección de Virtual Environments en la documentación oficial, la cual considero suficiente para configurar un proyecto de manera rápida y correcta.
Ahora era el momento de crear el clásico “Hola Mundo”. La documentación de FastAPI hace esto muy sencillo: el apartado First Steps nos guía paso a paso para lograrlo. Una vez completados estos pasos, solo basta con ejecutar en la consola el siguiente comando:
fastapi dev main.py
Y en consola ya podremos ver el proyecto ejecutándose.
Lo que más me gusta de FastAPI es que la documentación se genera automáticamente desde el primer momento, y está disponible en dos formatos: Swagger y ReDoc. Personalmente, encuentro que ReDoc ofrece una presentación más minimalista y clara, lo que facilita la lectura y navegación.
El siguiente paso fue crear los servicios con datos simulados, y para esto aproveché la asistencia de una IA.
Mi contexto fue el siguiente:
“Estoy desarrollando una API con FastAPI para gestionar los días no laborables en México, y necesito los servicios REST básicos :
Consultar días inhábiles
Agregar un día inhábil
Desactivar un día inhábil
Los días no laborables:
1° de enero
Primer lunes de febrero, en conmemoración del 5 de febrero
Tercer lunes de marzo, en conmemoración del 21 de marzo
1° de mayo
16 de septiembre
Tercer lunes de noviembre, en conmemoración del 20 de noviembre
1° de octubre cada seis años, cuando corresponde a la transmisión del Poder Ejecutivo Federal
25 de diciembre”
Para este alcanzable, decidí manejar la información en memoria, lo que nos permite probar desde este punto.
Con esto ya fue posible ver mis nuevos servicios en la documentación y realizar unas pruebas
Creo que hasta el momento es aceptable.
He decidí dividir este proyecto en pequeñas tareas:
Por lo pronto, si te interesa explorar el código, puedo compartir el repositorio. Aún está en sus primeras etapas, pero me emociona contribuir poco a poco a nuestra comunidad y mostrar cómo una idea puede evolucionar con pequeñas iteraciones.
tags: