Middleware Factories#
The middleware factory differ from the middleware in their need and usage. A middleware is global, and, sometimes, middleware data may differ per incoming requests.
The middleware factory, build a middleware and inject in in the blacksmith client on instanciation.
The main use case is for forwardin header
Forward http headers#
The list of middleware are defined under the
setting key blacksmith.client.middleware_factories
, as in the example above.
blacksmith.client.middleware_factories =
forward_header
blacksmith.client.middleware_factory.forward_header =
Authorization
Then each middleware should be configured under the key
blacksmith.client.middleware.<name>
such as
blacksmith.client.middleware.forward_header
in the example below.
In this example, the forward_header
middleware factory
will forward the Authorization
header if present in the Pyramid request,
to every blacksmith instanciated clients without writing a line of code.
Custom Middleware Factory#
To load a custom middleware, a class can be passed on the same line
blacksmith.client.middleware_factories =
mybuilder my.own.module:MyMiddlewareBuilder
In the example above, the class MyMiddlewareBuilder
overrides the class
pyramid_blacksmith.AbstractMiddlewareFactoryBuilder
.