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.validators 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 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.validators import ResponseValidator
from openapi_core.wrappers 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 Distribution
File details
Details for the file openapi-core-0.4.3.tar.gz
.
File metadata
- Download URL: openapi-core-0.4.3.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d6b6211fefe2e0c1cd49fe083122a0438a890b1f43a79d840e19738800d70d2 |
|
MD5 | ce136022fb55bef656d5b2c12d37ba64 |
|
BLAKE2b-256 | ea20d3a7612f582a55a45210fd7f8273ea6d4e6ceacd944bffef876642cb6dd4 |
File details
Details for the file openapi_core-0.4.3-py3-none-any.whl
.
File metadata
- Download URL: openapi_core-0.4.3-py3-none-any.whl
- Upload date:
- Size: 19.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 86ca12706820c32ccfb32135bb093586bb434fe582c52d7391c4c4bb17271139 |
|
MD5 | 80ca7372a76ddeb9fe6834f8c1acd283 |
|
BLAKE2b-256 | 6dee45375fa3f472ef77c174d5f99bac7374327b0ea90608a72e991ad2892fd5 |