Escribí este post para compartir mi experiencia implementando middlewares en Azure Functions.
Azure Functions es un servicio de computo serverless, similar a AWS Lambda, que permite ejecutar código on-demand sin tener que manejar infraestructura explícitamente.
La gran ventaja de la arquitectura serverless es que permite enfocarse en construir apps y no preocuparse por proveer o manejar servidores, permitiendo poder concentrarse solo en lo que de verdad importa para el negocio.
Pero en aplicaciones reales, hay que lidiar con asuntos técnicos que escapan de la lógica de negocio, cómo validaciones, parseo de entradas, serialización, manejo de errores, etc.
Todo este código auxiliar suele terminar ensuciando nuestra lógica, volviendo nuestras funciones más difíciles de leer y mantener.
Web frameworks, como Express, Fastify or Hapi, han solucionado este problema usando el patron middlewares. Este permite a los desarrolladores abstraer estas tareas técnicas en pequeños “pasos” que decoran la lógica de negocio principal.
Luego de decidirme a implementar este patron en mi proyecto realice una pequeña búsqueda para comprobar si alguien ya había implementado una solución similar.
Desafortunadamente, las pocas soluciones que halle no eran lo satisfacían mis necesidades, por lo que decidí implementar mi propia solución.
Así es cómo Azure-Middleware nació.
Actualmente, sigue en desarrollo por lo que si tienen alguna sugerencia soy todo oídos. Muchas gracias por su tiempo!
Dejo el link a un post en donde explico un poco más como funciona el package: https://medium.com/@emanuelcasco/implementando-middlewares-enazure-functions-f3b1d13881ac