Skip to main content

client-side and server-side support for the OpenAPI Specification v3

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.

Key features

  • Validation of requests and responses

  • Schema casting and unmarshalling

  • Media type and parameters deserialization

  • Security providers (API keys, Cookie, Basic and Bearer HTTP authentications)

  • Custom deserializers and formats

  • Integration with libraries and frameworks

Documentation

Check documentation to see more details about the features. All documentation is in the “docs” directory and online at openapi-core.readthedocs.io

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)

Request

Now you can use it to validate requests

from openapi_core.validation.request.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 object with path, query, cookies and headers parameters
validated_params = result.parameters
# or specific parameters
validated_path_params = result.parameters.path

# get body
validated_body = result.body

# get security data
validated_security = result.security

Request object should be instance of OpenAPIRequest class (See Integrations).

Response

You can also validate responses

from openapi_core.validation.response.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

Response object should be instance of OpenAPIResponse class (See Integrations).

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.14.5.tar.gz (25.9 kB view details)

Uploaded Source

Built Distributions

openapi_core-0.14.5-py3-none-any.whl (52.7 kB view details)

Uploaded Python 3

openapi_core-0.14.5-py2-none-any.whl (52.7 kB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: openapi-core-0.14.5.tar.gz
  • Upload date:
  • Size: 25.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/2.7.18

File hashes

Hashes for openapi-core-0.14.5.tar.gz
Algorithm Hash digest
SHA256 4b1dd7a21a9545f8a3a932240e2cc9a53f564d080f462d0f8953eb272b77df0c
MD5 dec6cdc35615de2b4b0ecc075ca8a4e4
BLAKE2b-256 c6304dedc06ea828279701e8c74c8f8751d1d72d689766a17a59b582acbdc310

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openapi_core-0.14.5-py3-none-any.whl
  • Upload date:
  • Size: 52.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.3 readme-renderer/34.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.12 tqdm/4.64.0 importlib-metadata/4.8.3 keyring/23.4.1 rfc3986/1.5.0 colorama/0.4.5 CPython/3.6.15

File hashes

Hashes for openapi_core-0.14.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4311693801e6551f99293c0f4be5f91f45e9d50c5578c57f09a2a17e06e4e3df
MD5 96f9c2ff092e2de95bd94c91551555ee
BLAKE2b-256 ee47a591fe40c2ee2e19e4938c044c9851c2882c76b22f58861897a64c039bd9

See more details on using hashes here.

File details

Details for the file openapi_core-0.14.5-py2-none-any.whl.

File metadata

  • Download URL: openapi_core-0.14.5-py2-none-any.whl
  • Upload date:
  • Size: 52.7 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.8.3 requests/2.27.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.64.0 CPython/2.7.18

File hashes

Hashes for openapi_core-0.14.5-py2-none-any.whl
Algorithm Hash digest
SHA256 0b404e301c60f6c3b6083d5de8e05a418142e21ef56d41a5178b552e53a18c62
MD5 6bf9430fb93975cf7d7ddcc484154bce
BLAKE2b-256 5703c9a079bd8b1db76bb473c72f1de0c04f00cd115e19eea134a9fd02be5758

See more details on using hashes here.

Supported by

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