Skip to main content

No project description provided

Project description

https://img.shields.io/pypi/v/openapi-core.svg https://travis-ci.org/p1c2u/openapi-core.svg?branch=master https://img.shields.io/codecov/c/github/p1c2u/openapi-core/master.svg?style=flat https://img.shields.io/pypi/pyversions/openapi-core.svg https://img.shields.io/pypi/format/openapi-core.svg https://img.shields.io/pypi/status/openapi-core.svg

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

openapi-core-0.4.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

openapi_core-0.4.1-py3-none-any.whl (19.6 kB view details)

Uploaded Python 3

File details

Details for the file openapi-core-0.4.1.tar.gz.

File metadata

  • Download URL: openapi-core-0.4.1.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for openapi-core-0.4.1.tar.gz
Algorithm Hash digest
SHA256 80bff73517f5a211c298a24eaa03b037610d66d3817390a16ce1737642384fea
MD5 81091c4ee6e211ebe5731f88ca4e6285
BLAKE2b-256 8664b8adc2089535ea7033ff2e3d0a9d197617d474a8eda6e23b190081b13264

See more details on using hashes here.

File details

Details for the file openapi_core-0.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for openapi_core-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 285fb91264b198f10fa82d57a4de8e1e3a775be30b52f35afd69b5747d5f5cbb
MD5 ab9bdd50f38002f2b58ce907fbe8ee02
BLAKE2b-256 fd40561a939344c8375a8c589cfd5dcb7d88a7b56281e5723b6178c261fe6c97

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page