@@ -55,8 +55,17 @@ def get_todos(): List[Todo]:
55
55
```
56
56
"""
57
57
58
- def __init__ (self , response_serializer : Optional [Callable [[Any ], str ]] = None ):
59
- self ._response_serializer = response_serializer
58
+ def __init__ (self , validation_serializer : Optional [Callable [[Any ], str ]] = None ):
59
+ """
60
+ Initialize the OpenAPIValidationMiddleware.
61
+
62
+ Parameters
63
+ ----------
64
+ validation_serializer : Callable, optional
65
+ Optional serializer to use when serializing the response for validation.
66
+ Use it when you have a custom type that cannot be serialized by the default jsonable_encoder.
67
+ """
68
+ self ._validation_serializer = validation_serializer
60
69
61
70
def handler (self , app : EventHandlerInstance , next_middleware : NextMiddleware ) -> Response :
62
71
logger .debug ("OpenAPIValidationMiddleware handler" )
@@ -184,11 +193,11 @@ def _serialize_response(
184
193
exclude_unset = exclude_unset ,
185
194
exclude_defaults = exclude_defaults ,
186
195
exclude_none = exclude_none ,
187
- custom_serializer = self ._response_serializer ,
196
+ custom_serializer = self ._validation_serializer ,
188
197
)
189
198
else :
190
199
# Just serialize the response content returned from the handler
191
- return jsonable_encoder (response_content , custom_serializer = self ._response_serializer )
200
+ return jsonable_encoder (response_content , custom_serializer = self ._validation_serializer )
192
201
193
202
def _prepare_response_content (
194
203
self ,
0 commit comments