Validation Middleware¶
validation_middleware
¶
Middleware that validates requests before delegation and short-circuits on failure.
ValidationMiddleware
¶
Bases: Middleware[RequestType, ResponseType]
Validates each request before forwarding to the downstream handler.
Delegates all validation logic to a caller-supplied validator
callable. When the validator returns a response, the middleware
short-circuits the pipeline — the downstream handler is never
called. When the validator returns None, the request is
considered valid and passes through unchanged.
Responsibilities
- Invoke the validator with every incoming request.
- Short-circuit and return the validator's response when
it is notNone. - Pass the request through unchanged when the validator
returnsNone.
Non-Responsibilities
- Define validation rules — those live in the caller.
- Format error responses — the validator returns the
finalResponseTypedirectly. - Handle errors raised by downstream middleware or the handler.
Example
Source code in src/forging_blocks/presentation/builtin/validation_middleware.py
__init__(validator: Callable[[RequestType], ResponseType | None]) -> None
¶
Wrap validator so every request is validated.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
validator
|
Callable[[RequestType], ResponseType | None]
|
A callable that receives the request and returns |
required |
Source code in src/forging_blocks/presentation/builtin/validation_middleware.py
process(request: RequestType, next_handler: NextHandler[RequestType, ResponseType]) -> ResponseType
async
¶
Validate the request, short-circuiting on failure.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
request
|
RequestType
|
The incoming request. |
required |
next_handler
|
NextHandler[RequestType, ResponseType]
|
The next callable in the pipeline chain. |
required |
Returns:
| Type | Description |
|---|---|
ResponseType
|
|
ResponseType
|
|