En muchas aplicaciones FastAPI aparece el problema conocido como encadenamiento de propiedades o property drilling donde objetos de contexto como el usuario autenticado o la sesión de base de datos se crean en el controlador y se pasan manualmente por cada capa hasta llegar a la política que finalmente decide si una acción está permitida. Esto genera código verboso, cadenas de dependencias en tests y una superficie mayor de mantenimiento.
Antes esto suele verse así: el endpoint obtiene la sesión y el usuario, crea un contexto y lo pasa al servicio; el servicio lo reenvía al repositorio; el repositorio lo reenvía al registro de auditoría y al bus de eventos; y la política de negocio recibe ese mismo contexto solo para comprobar permisos. Es el clásico caso de pasar datos por componentes que no los usan solo para que un elemento profundamente anidado pueda acceder a ellos.
La solución práctica que implementamos es usar variables de contexto a nivel de solicitud (ContextVar) y un wrapper tipo Current inspirado en el patrón Current de Ruby. Al inicio de cada petición, un middleware crea el contexto del usuario y lo asigna a una variable de contexto segura para entornos asíncronos. Durante la ejecución normal de la request cualquier capa que necesite información del usuario o de la sesión puede leerla directamente desde Current sin necesidad de recibirla como parámetro en cada llamada.
Ventajas clave de este enfoque: seguridad en entornos async porque ContextVar evita condiciones de carrera; reducción significativa del código repetitivo en controladores, servicios y repositorios; tests más simples al eliminar largas cadenas de mocks; y mayor claridad porque las llamadas a funciones se centran en la lógica de negocio, no en transportar metadata de usuario.
De forma resumida el flujo cambia de pasar contexto por todos lados a establecerlo una sola vez en un middleware y acceder a Current solo donde se necesita, por ejemplo en políticas de permisos o en logs de auditoría. Con esta técnica logramos reducir el código en capas de servicio y repositorio hasta un 40 por ciento y simplificar la configuración de pruebas a la mitad.
En Q2BSTUDIO aplicamos patrones como este cuando desarrollamos aplicaciones a medida y software a medida para clientes que buscan soluciones escalables y seguras. Nuestra experiencia incluye integración de inteligencia artificial para empresas, agentes IA, servicios de ciberseguridad y pentesting, y despliegues en servicios cloud aws y azure. Si tu proyecto necesita una aplicación robusta y mantenible podemos ayudarte a diseñar la arquitectura y aplicar patrones que reduzcan complejidad y mejoren la testabilidad.
Si te interesa profundizar en desarrollo de aplicaciones a medida visita nuestro servicio de desarrollo de aplicaciones y software multiplataforma y para soluciones de IA corporativa consulta nuestra propuesta de inteligencia artificial para empresas. En Q2BSTUDIO también ofrecemos servicios de Business Intelligence y Power BI, automatización de procesos, y arquitecturas seguras en la nube que combinan rendimiento y cumplimiento.
Si quieres que adaptemos este patrón Current a tu stack FastAPI o que evaluemos la arquitectura de permisos y auditoría de tu proyecto, contacta con nosotros y diseñaremos una solución a medida que incluya buenas prácticas de seguridad, pruebas y despliegue en la nube.