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

Uploaded Source

Built Distributions

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

openapi_core-0.14.2-py3-none-any.whl (52.6 kB view details)

Uploaded Python 3

openapi_core-0.14.2-py2-none-any.whl (52.6 kB view details)

Uploaded Python 2

File details

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

File metadata

  • Download URL: openapi-core-0.14.2.tar.gz
  • Upload date:
  • Size: 27.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.25.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/2.7.18

File hashes

Hashes for openapi-core-0.14.2.tar.gz
Algorithm Hash digest
SHA256 62ad93c8114ce6025f25b004ff0f3674eea8bc4ae920c726e98921fdbe41b4f3
MD5 78afcee9e24b3237d4c3c1482bda3bb2
BLAKE2b-256 04363d57b5b154daf2300c1c460a5146c92cd765607eb120aa7f96d4d99c8f58

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openapi_core-0.14.2-py3-none-any.whl
  • Upload date:
  • Size: 52.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.6.13

File hashes

Hashes for openapi_core-0.14.2-py3-none-any.whl
Algorithm Hash digest
SHA256 05e100cfb25b4c68d2f647b3f204da26630d79df02d5e0aacae2bcc1915a2796
MD5 59432d76368d6832de7264aea035a7b5
BLAKE2b-256 58c24e96db8eaba8094843e57d68022fef34411ad4ac8efd2137b7aa2cd3be46

See more details on using hashes here.

File details

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

File metadata

  • Download URL: openapi_core-0.14.2-py2-none-any.whl
  • Upload date:
  • Size: 52.6 kB
  • Tags: Python 2
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.15.0 pkginfo/1.7.0 requests/2.25.1 setuptools/41.2.0 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/2.7.18

File hashes

Hashes for openapi_core-0.14.2-py2-none-any.whl
Algorithm Hash digest
SHA256 3426b5ae551a04f7d7a3a625ca600bff157affb4eb691d36412997f6a9ac6898
MD5 62d9d130b5402dca7036d62809646cbd
BLAKE2b-256 206a2ad62a1e84881e1dfab8f89e18a57ef0d8a17c69d8538153f7f3b87a7e52

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