Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI Specification v3.
- Validation of requests and responses
- Schema casting and unmarshalling
- Media type and parameters deserialization
- Security providers (API keys, Cookie, Basic and Bearer HTTP authentications)
- Custom deserializers and formats
- Integration with libraries and frameworks
Check documentation to see more details about the features. All documentation is in the "docs" directory and online at openapi-core.readthedocs.io
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_coreFirstly create your specification:
fromopenapi_coreimportcreate_specspec=create_spec(spec_dict)Now you can use it to validate requests
fromopenapi_core.validation.request.validatorsimportRequestValidatorvalidator=RequestValidator(spec) result=validator.validate(request) # raise errors if request invalidresult.raise_for_errors() # get list of errorserrors=result.errorsand unmarshal request data from validation result
# get parameters object with path, query, cookies and headers parametersvalidated_params=result.parameters# or specific parametersvalidated_path_params=result.parameters.path# get bodyvalidated_body=result.body# get security datavalidated_security=result.securityRequest object should be instance of OpenAPIRequest class (See Integrations).
You can also validate responses
fromopenapi_core.validation.response.validatorsimportResponseValidatorvalidator=ResponseValidator(spec) result=validator.validate(request, response) # raise errors if response invalidresult.raise_for_errors() # get list of errorserrors=result.errorsand unmarshal response data from validation result
# get headersvalidated_headers=result.headers# get datavalidated_data=result.dataResponse object should be instance of OpenAPIResponse class (See Integrations).