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
.