Tutorial de Cómo Crear un Middleware Personalizado en ASP .NET Core [Nueva Guía con Ejemplos]

Tutorial de Cómo Crear un Middleware Personalizado en ASP .NET Core [Nueva Guía con Ejemplos]

Spread the love

A pesar de que ASP .Net Core cuenta con una gran cantidad de middleware predefinidos, los cuales se pueden agregar a nuestra aplicación con gran facilidad y sin necesidad de agregar complejidad a nuestro código, en muchas ocasiones nos toparemos con la necesidad de definir cierta funcionalidad adicionar a través de un middleware.

Por esta razón  ASP.Net Core nos permite agregar nuestros propios middlewares personalizados en caso de que consideremos sea necesario.

Sin más preámbulos veamos como podemos hacer esto.

¿Como se Define un Middleware Personalizado?

Existen dos formas de hacerlo:

  • Utilizando un método anónimo también llamados inline middleware o middleware en línea.
  • Creando una clase middleware que contenga los métodos que serán invocados una vez se reciba una solicitud.

A continuación muestro ejemplos de como crear cada uno.

Ejemplo de Middleware Personalizado en Línea(Método Anónimo)

En este ejemplo se muestra como se puede crear un middleware utilizando un método anónimo el cual recibe como parámetros un objeto HttpContext y un delegado al cual permite llamar al próximo middleware para que procese la solicitud actual.

C#

Ejemplo Creando un Middleware Personalizado en una Clase

Es recomendable que a la hora de definir un middleware customizado es que creemos una clase separada, debido a que esto nos permite tener mayor portabilidad y organización dentro de nuestro proyecto.

Para crear una clase middleware simplemente debemos definir un método Invoke y crear un constructor que reciba como parámetro un objeto RequestDelegate. Ver ejemplo:

C#

Luego solo debemos definir en nuestra clase Startup nuestro middleware para que sea utilizando en cada solicitud. Esto lo puedes hacer de forma sencilla utilizando el método UseMiddleware que ese encuentra en interfaz IApplicationBuilder. Ver ejemplo:

C#

Simplifica todo Utilizando Extensiones de Método

También es recomendable definir extensiones de métodos para simplificar la declaración de nuestros middleware personalizados en la clase Startup. Esto se puede hacer de forma sencilla definiendo una clase nueva con un método extensión que cuente con esta definición.

C#

Luego solo debemos llamar el método extensión que define nuestro middleware en la clase Startup desde el método Configure.

C#

Creando Middleware Utilizando un Template de Visual Studio

También puedes ahorrar tiempo y crear tu middleware personalizado utilizando un template Visual Studio, donde solo tienes que hacer clic derecho en la carpeta que quieras crear tu middleware y hacer clic en Agregar -> Archivo Nuevo. Luego buscar el template llamado Middleware como se muestra aquí debajo:

Visual Studio te generará una clase middleware similar a la siguiente:

C#

Ya solo debes agregar la lógica que quieras implementar en el método Invoke.

¡Y listo!

Ya tienes un middleware personalizado con una estructura de código bien limpia y organizada.

Espero que te haya servido este tutorial sobre como crear tu propio middleware customizado.

Si tienes alguna duda o sugerencia déjamela saber en los comentarios.

¡Y nos vemos en el próximo post!

Deja un comentario