The request logging middleware developed in the last post looks like this:
To use this application developers will have to add that function to their OWIN pipeline. Doing so in pure OWIN, without resorting to APIs specific to a given server implementation, is a matter of calling the build function with the middleware function. The server implementation is responsible for providing the build function.
Using the ASP.NET 5 API for obtaining an OWIN build function and assuming the requestLoggingMiddleware is in scope adding middleware through the build function looks like this:
Nice and simple. What we might add on top of this is a simple extension method to the build function:
turning the code for adding the middleware to the pipeline into this:
The advantage of this is that
- the requestLoggingMiddleware variable need not be in scope in the application code
- the extension method provides a convenient place for application startup code to pass in parameters to the middleware - like say logging configuration parameters or whatever else might be relevant
- the extension method returns the build function allowing application code a convenient way of chaining pipeline setup
Now sharing the middleware a across a number of services (and teams) is a matter of sharing the class above through e.g. NuGet.