No project description provided
Project description
About
Openapi-core is a Python library that adds client-side and server-side support for the OpenAPI Specification v3.0.0.
Installation
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
Usage
Firstly create your specification:
from openapi_core import create_spec
spec = create_spec(spec_dict)
Now you can use it to validate requests
from openapi_core.shortcuts import RequestValidator
validator = RequestValidator(spec)
result = validator.validate(request)
# raise errors if request invalid
result.raise_for_errors()
# get list of errors
errors = result.errors
and unmarshal request data from validation result
# get parameters dictionary with path, query, cookies and headers parameters
validated_params = result.parameters
# get body
validated_body = result.body
or use shortcuts for simple validation
from openapi_core import validate_parameters, validate_body
validated_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:
from openapi_core.validators import RequestValidator
from openapi_core.wrappers.flask import FlaskOpenAPIRequest
openapi_request = FlaskOpenAPIRequest(flask_request)
validator = RequestValidator(spec)
result = validator.validate(openapi_request)
or specify request wrapper class for shortcuts
from openapi_core import validate_parameters, validate_body
validated_params = validate_parameters(
spec, request, wrapper_class=FlaskOpenAPIRequest)
validated_body = validate_body(
spec, request, wrapper_class=FlaskOpenAPIRequest)
You can also validate responses
from openapi_core.validators import ResponseValidator
validator = ResponseValidator(spec)
result = validator.validate(request, response)
# raise errors if response invalid
result.raise_for_errors()
# get list of errors
errors = result.errors
and unmarshal response data from validation result
# get headers
validated_headers = result.headers
# get data
validated_data = result.data
or use shortcuts for simple validation
from openapi_core import validate_data
validated_data = validate_data(spec, request, response)
Response object should implement BaseOpenAPIResponse interface. You can use FlaskOpenAPIResponse a Flask/Werkzeug response wrapper implementation:
from openapi_core.shortcuts import ResponseValidator
from openapi_core.wrappers.flask import FlaskOpenAPIResponse
openapi_response = FlaskOpenAPIResponse(flask_response)
validator = ResponseValidator(spec)
result = validator.validate(openapi_request, openapi_response)
or specify response wrapper class for shortcuts
from openapi_core import validate_parameters, validate_body
validated_data = validate_data(
spec, request, response, response_wrapper_class=FlaskOpenAPIResponse)
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for openapi_core-0.6.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5cf5b1c469e674136abce0f7e8e55ac9f67980dcbf16b75936644f9f224fbfb9 |
|
MD5 | 7dd51a2f6c8f7793e2da82a9cc31babb |
|
BLAKE2b-256 | decef0cdfe97ad506b5fcdada0c3e4ab0ab537da8902ea60032e55136e4bc1e3 |
Hashes for openapi_core-0.6.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 87c5cdee84bc62b5a0cf5fa35c68fe19bb64c8aa031cddbd472afe83a49845ba |
|
MD5 | c93eb7c17c7cd9f4fe98503affedfcb1 |
|
BLAKE2b-256 | 206e6591a574b3622a3f2074e23e36b76f97e1a2faaae73273a533f51529bdf6 |