mirror of
https://github.com/LukeHagar/connexion.git
synced 2025-12-09 12:27:46 +00:00
Extract JSON request body validation to middleware (#1588)
* Set up code skeleton for validation middleware * Add more boilerplate code * WIP * Add ASGI JSONBodyValidator * Revert example changes * Remove incorrect content type test Co-authored-by: Ruwan <ruwanlambrichts@gmail.com>
This commit is contained in:
@@ -6,6 +6,7 @@ from connexion import App
|
||||
from connexion.decorators.validation import RequestBodyValidator
|
||||
from connexion.json_schema import Draft4RequestValidator
|
||||
from connexion.spec import Specification
|
||||
from connexion.validators import JSONBodyValidator
|
||||
from jsonschema.validators import _utils, extend
|
||||
|
||||
from conftest import build_app_from_fixture
|
||||
@@ -30,11 +31,11 @@ def test_validator_map(json_validation_spec_dir, spec):
|
||||
|
||||
MinLengthRequestValidator = extend(Draft4RequestValidator, {"type": validate_type})
|
||||
|
||||
class MyRequestBodyValidator(RequestBodyValidator):
|
||||
class MyJSONBodyValidator(JSONBodyValidator):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, validator=MinLengthRequestValidator, **kwargs)
|
||||
|
||||
validator_map = {"body": MyRequestBodyValidator}
|
||||
validator_map = {"body": {"application/json": MyJSONBodyValidator}}
|
||||
|
||||
app = App(__name__, specification_dir=json_validation_spec_dir)
|
||||
app.add_api(spec, validate_responses=True, validator_map=validator_map)
|
||||
|
||||
Reference in New Issue
Block a user