Este documento explica cómo añadir nuevas rutas a la aplicación usando el sistema de registro dinámico de rutas.
La aplicación utiliza ahora un sistema de registro dinámico que descubre y registra automáticamente todos los blueprints de Flask en el directorio routes. Ya no es necesario importarlos manualmente en app.py.
-
Crear un nuevo archivo de ruta
Crea un archivo Python en la ubicación adecuada dentro de
routes. Para un endpoint v1, normalmente dentro deroutes/v1/según la funcionalidad.Ejemplo:
routes/v1/email/send_email.py -
Definir el Blueprint
Dentro del archivo, define un blueprint con un nombre único siguiendo la convención:
# routes/v1/email/send_email.py from flask import Blueprint, request from services.authentication import authenticate from app_utils import queue_task_wrapper v1_email_send_bp = Blueprint('v1_email_send', __name__) @v1_email_send_bp.route('/v1/email/send', methods=['POST']) @authenticate @queue_task_wrapper(bypass_queue=False) def send_email(job_id, data): """ Enviar un correo electrónico Args: job_id (str): ID de la tarea asignado por queue_task_wrapper data (dict): Datos de la petición con la información del email Returns: Tuple (response_data, endpoint_string, status_code) """ endpoint = "/v1/email/send" return {"message": "Email enviado"}, endpoint, 200
-
Listo
No es necesario modificar
app.py. El blueprint será detectado y registrado automáticamente al iniciar la aplicación.
-
Blueprints:
{version}_{categoria}_{accion}_bpEjemplo:v1_email_send_bp -
Rutas:
/{version}/{categoria}/{accion}Ejemplo:/v1/email/send -
Archivos: En directorios que reflejen la estructura de la ruta Ejemplo:
routes/v1/email/send_email.py
Tras añadirla, reinicia la aplicación y el nuevo endpoint estará disponible.
Si la ruta no se registra:
- Revisa los logs por errores de importación
- Comprueba que el blueprint está definido a nivel de módulo
- Verifica que el nombre sigue la convención
- Asegúrate de que el archivo está en el directorio correcto bajo
routes/