Skip to content

Commit ca98852

Browse files
committed
Wrapper class for shortcuts
1 parent a40a252 commit ca98852

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

README.rst

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -92,6 +92,17 @@ Request object should implement BaseOpenAPIRequest interface. You can use FlaskO
9292
validator = RequestValidator(spec)
9393
result = validator.validate(openapi_request)
9494
95+
or specify request wrapper class for shortcuts
96+
97+
.. code-block:: python
98+
99+
from openapi_core import validate_parameters, validate_body
100+
101+
validated_params = validate_parameters(
102+
spec, request, wrapper_class=FlaskOpenAPIRequest)
103+
validated_body = validate_body(
104+
spec, request, wrapper_class=FlaskOpenAPIRequest)
105+
95106
Related projects
96107
================
97108
* `openapi-spec-validator <https://github.com/p1c2u/openapi-spec-validator>`__

openapi_core/shortcuts.py

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
from openapi_core.exceptions import OpenAPIParameterError, OpenAPIBodyError
77
from openapi_core.specs import SpecFactory
88
from openapi_core.validators import RequestValidator
9+
from openapi_core.wrappers import FlaskOpenAPIRequest
910

1011

1112
def create_spec(spec_dict, spec_url=''):
@@ -16,7 +17,10 @@ def create_spec(spec_dict, spec_url=''):
1617
return spec_factory.create(spec_dict, spec_url=spec_url)
1718

1819

19-
def validate_parameters(spec, request):
20+
def validate_parameters(spec, request, wrapper_class=FlaskOpenAPIRequest):
21+
if wrapper_class:
22+
request = wrapper_class(request)
23+
2024
validator = RequestValidator(spec)
2125
result = validator.validate(request)
2226
try:
@@ -27,7 +31,10 @@ def validate_parameters(spec, request):
2731
return result.parameters
2832

2933

30-
def validate_body(spec, request):
34+
def validate_body(spec, request, wrapper_class=FlaskOpenAPIRequest):
35+
if wrapper_class:
36+
request = wrapper_class(request)
37+
3138
validator = RequestValidator(spec)
3239
result = validator.validate(request)
3340
try:

0 commit comments

Comments
 (0)