openapi-core
Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specification.
Key features
- Validation and Unmarshalling of request and response data (including webhooks)
- Integrations with popular libraries (Requests, Werkzeug) and frameworks (Django, Falcon, Flask, Starlette)
- Customization with media type deserializers and format unmarshallers
- Security data providers (API keys, Cookie, Basic and Bearer HTTP authentications)
Installation
pip install openapi-core
pip install -e git+https://github.com/python-openapi/openapi-core.git#egg=openapi_core
First steps
Firstly create your OpenAPI object.
from openapi_core import OpenAPI
openapi = OpenAPI.from_file_path('openapi.json')
Now you can use it to validate and unmarshal your requests and/or responses.
# raises error if request is invalid
result = openapi.unmarshal_request(request)
Retrieve validated and unmarshalled request data
# get parameters
path_params = result.parameters.path
query_params = result.parameters.query
cookies_params = result.parameters.cookies
headers_params = result.parameters.headers
# get body
body = result.body
# get security data
security = result.security
Request object should implement OpenAPI Request protocol. Check Integrations to find oficially supported implementations.
For more details read about Unmarshalling process.
If you just want to validate your request/response data without unmarshalling, read about Validation instead.
Related projects
- openapi-spec-validator : Python library that validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger), OpenAPI 3.0 and OpenAPI 3.1 specification. The validator aims to check for full compliance with the Specification.
- openapi-schema-validator : Python library that validates schema against the OpenAPI Schema Specification v3.0 and OpenAPI Schema Specification v3.1.
License
The project is under the terms of BSD 3-Clause License.