How-To: Middleware

Middleware is code that modifies the request before going into your code, and the response after coming out of your route function. Waffleweb allows you to add middleware to your app easily.

Adding Middleware

To add middleware you can use the middleware attribute of the app instance. All the middleware are classes.

    from waffleweb import app
from yourMiddleware import middleware

    app.middleware.append(middleware)

The order in which the middleware gets called is the first middleware you add is the first run.

Creating Middleware

Creating middleware for Waffleweb is easy. The middleware is class with one or two methods named “after” and “before”. The “after” method should take a Request object and return a Request object. The “before” method should take a response and return a response.

class ExampleMiddleware:
    def before(request):
        request.COOKIES['cookie'] = 'value'
        return request

    def after(response):
        response.headers['header'] = 'value'
        return response

Please note that you don’t need both methods, you only need one of two methods.