You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
How to customize API validation error response in Flask #564
{
"errors": [
{
"class": "<class 'openapi_core.validation.schemas.exceptions.InvalidSchemaValue'>",
"status": 400,
"title": "Value {'flag': 'testF'} not valid for schema of type object: (<ValidationError: \"'testF' is too short\">,)"
}
]
}
Expected Behavior
We should be able to generate custom responses, and should be able to capture the validation error info e.g. status code, validation error message, and title
Steps to Reproduce
I set up a flask server and followed the instructions provided here
Currently openapi-core is validating the incoming requets properly, however the response generated is as follows
{
"errors": [
{
"class": "<class 'openapi_core.validation.schemas.exceptions.InvalidSchemaValue'>",
"status": 400,
"title": "Value {'flag': 'testF'} not valid for schema of type object: (<ValidationError: \"'testF' is too short\">,)"
}
]
}
I want to customize the response body as per my application,
I wanted to know if is there any provision using which we can provide custom responses.
or even if we somehow capture the validation error info e.g. status code, validation error message, and title then we can generate our own response with the available information.
thanks for the report. Errors handling customization is one of the topics missing in current documentation (I didn't add this to the documentation because of missing well-defined interface and possible interface changes in near future). Currently it's possible customize errors handling by passing your own handler class with openapi_errors_handler parameter (See decorator and default errors handler). So most likely you would want to inherit from FlaskOpenAPIErrorsHandler class.
Activity
p1c2u commentedon Apr 28, 2023
Hi @rohan-97
thanks for the report. Errors handling customization is one of the topics missing in current documentation (I didn't add this to the documentation because of missing well-defined interface and possible interface changes in near future). Currently it's possible customize errors handling by passing your own handler class with
openapi_errors_handlerparameter (See decorator and default errors handler). So most likely you would want to inherit fromFlaskOpenAPIErrorsHandlerclass.rohan-97 commentedon Apr 28, 2023
Thanks @p1c2u for the quick response,
I was able to customize the response by inheriting FlaskOpenAPIErrorsHandler class.
I believe this is really nice feature to have, and should be documented,
I'll keep this issue open so that this can be documented in future