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 v3.0andOpenAPI v3.1 specification.
- Validation of requests and responses
- Schemacasting andunmarshalling
- Media type and parametersdeserialization
- Security providers (API keys, Cookie, Basic and Bearer HTTP authentications)
- Customdeserializers andformats
- Integration with libraries and frameworks
Check documentation to see more details about the features. All documentation is in the "docs" directory and online atopenapi-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_core
Firstly create your specification object. By default, OpenAPI spec version is detected:
fromjsonimportloadfromopenapi_coreimportSpecwithopen('openapi.json','r')asspec_file:spec_dict=load(spec_file)spec=Spec.create(spec_dict)
Now you can use it to validate against requests
fromopenapi_core.validation.requestimportopenapi_request_validatorresult=openapi_request_validator.validate(spec,request)# raise errors if request invalidresult.raise_for_errors()# get list of errorserrors=result.errors
and 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.security
Request object should implement OpenAPI Request protocol (SeeIntegrations).
You can also validate against responses
fromopenapi_core.validation.responseimportopenapi_response_validatorresult=openapi_response_validator.validate(spec,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
Response object should implement OpenAPI Response protocol (SeeIntegrations).
In order to explicitly validate a:
- OpenAPI 3.0 spec, import
openapi_v30_request_validator
oropenapi_v30_response_validator
- OpenAPI 3.1 spec, import
openapi_v31_request_validator
oropenapi_v31_response_validator
fromopenapi_core.validation.responseimportopenapi_v31_response_validatorresult=openapi_v31_response_validator.validate(spec,request,response)
You can also explicitly importopenapi_v3_request_validator
oropenapi_v3_response_validator
which is a shortcut to the latest v3 release.
- bottle-openapi-3
- OpenAPI 3.0 Support for the Bottle Web Framework
- openapi-spec-validator
- Python library that validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 specification
- openapi-schema-validator
- Python library that validates schema against the OpenAPI Schema Specification v3.0.
- pyramid_openapi3
- Pyramid addon for OpenAPI3 validation of requests and responses.
- tornado-openapi3
- Tornado OpenAPI 3 request and response validation library.
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.
Packages0
Uh oh!
There was an error while loading.Please reload this page.