Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork136
Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specification.
License
python-openapi/openapi-core
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
Openapi-core is a Python library that adds client-side and server-side supportfor theOpenAPI Specification v3.0.0.
Recommended way (via pip):
$ pip install openapi-core
Alternatively you can download the code and install from the repository:
$ pip install -e git+https://github.com/p1c2u/openapi-core.git#egg=openapi_core
Firstly create your specification:
fromopenapi_coreimportcreate_specspec=create_spec(spec_dict)
Now you can use it to validate requests
fromopenapi_core.shortcutsimportRequestValidatorvalidator=RequestValidator(spec)result=validator.validate(request)# raise errors if request invalidresult.raise_for_errors()# get list of errorserrors=result.errors
and unmarshal request data from validation result
# get parameters dictionary with path, query, cookies and headers parametersvalidated_params=result.parameters# get bodyvalidated_body=result.body
or use shortcuts for simple validation
fromopenapi_coreimportvalidate_parameters,validate_bodyvalidated_params=validate_parameters(spec,request)validated_body=validate_body(spec,request)
Request object should implement BaseOpenAPIRequest interface. You can use FlaskOpenAPIRequest a Flask/Werkzeug request wrapper implementation:
fromopenapi_core.validatorsimportRequestValidatorfromopenapi_core.wrappers.flaskimportFlaskOpenAPIRequestopenapi_request=FlaskOpenAPIRequest(flask_request)validator=RequestValidator(spec)result=validator.validate(openapi_request)
or specify request wrapper class for shortcuts
fromopenapi_coreimportvalidate_parameters,validate_bodyvalidated_params=validate_parameters(spec,request,wrapper_class=FlaskOpenAPIRequest)validated_body=validate_body(spec,request,wrapper_class=FlaskOpenAPIRequest)
You can also validate responses
fromopenapi_core.validatorsimportResponseValidatorvalidator=ResponseValidator(spec)result=validator.validate(request,response)# raise errors if response invalidresult.raise_for_errors()# get list of errorserrors=result.errors
and unmarshal response data from validation result
# get headersvalidated_headers=result.headers# get datavalidated_data=result.data
or use shortcuts for simple validation
fromopenapi_coreimportvalidate_datavalidated_data=validate_data(spec,request,response)
Response object should implement BaseOpenAPIResponse interface. You can use FlaskOpenAPIResponse a Flask/Werkzeug response wrapper implementation:
fromopenapi_core.shortcutsimportResponseValidatorfromopenapi_core.wrappers.flaskimportFlaskOpenAPIResponseopenapi_response=FlaskOpenAPIResponse(flask_response)validator=ResponseValidator(spec)result=validator.validate(openapi_request,openapi_response)
or specify response wrapper class for shortcuts
fromopenapi_coreimportvalidate_parameters,validate_bodyvalidated_data=validate_data(spec,request,response,response_wrapper_class=FlaskOpenAPIResponse)
About
Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specification.
Topics
Resources
License
Security policy
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Sponsor this project
Uh oh!
There was an error while loading.Please reload this page.