Skip to main content

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

Project description

openapi-core

Package version Continuous Integration Tests coverage Python versions Package format Development status

About

Openapi-core is a Python library that provides client-side and server-side support for the OpenAPI v3.0 and OpenAPI v3.1 specifications.

Key features

  • Validation and unmarshalling of request and response data (including webhooks)
  • Integration with popular libraries (Requests, Werkzeug) and frameworks (Django, Falcon, Flask, Starlette)
  • Customization with media type deserializers and format unmarshallers
  • Security data providers (API keys, Cookie, Basic, and Bearer HTTP authentications)

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/python-openapi/openapi-core.git#egg=openapi_core

First steps

First, create your OpenAPI object.

from openapi_core import OpenAPI

openapi = OpenAPI.from_file_path('openapi.json')

Now you can use it to validate and unmarshal against requests and/or responses.

# raises an error if the request is invalid
result = openapi.unmarshal_request(request)

Retrieve validated and unmarshalled request data.

# get parameters
path_params = result.parameters.path
query_params = result.parameters.query
cookies_params = result.parameters.cookies
headers_params = result.parameters.headers
# get body
body = result.body
# get security data
security = result.security

The request object should implement the OpenAPI Request protocol. Check Integrations to find officially supported implementations.

For more details read about the Unmarshalling process.

If you just want to validate your request/response data without unmarshalling, read about Validation instead.

Related projects

  • openapi-spec-validator : A Python library that validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger), OpenAPI 3.0, and OpenAPI 3.1 specification. The validator aims to check for full compliance with the Specification.
  • openapi-schema-validator : A Python library that validates schema against the OpenAPI Schema Specification v3.0 and OpenAPI Schema Specification v3.1.
  • bottle-openapi-3 : OpenAPI 3.0 Support for the Bottle Web Framework
  • pyramid_openapi3 : Pyramid addon for OpenAPI3 validation of requests and responses.
  • tornado-openapi3 : Tornado OpenAPI 3 request and response validation library.

License

The project is under the terms of the BSD 3-Clause License.

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.21.0.tar.gz (105.7 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.21.0-py3-none-any.whl (107.5 kB view details)

Uploaded Python 3

File details

Details for the file openapi_core-0.21.0.tar.gz.

File metadata

  • Download URL: openapi_core-0.21.0.tar.gz
  • Upload date:
  • Size: 105.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openapi_core-0.21.0.tar.gz
Algorithm Hash digest
SHA256 a9e378fafbf3708a2ca827608388bb3d46d7ba07f9758b78244ffee6503a772e
MD5 03457de942aa4f2fd5b20d9047311912
BLAKE2b-256 84f7fe803810dbf6fd9064b35957ef26a711480cbb40e2fa5289bac6ad93dc1d

See more details on using hashes here.

Provenance

The following attestation bundles were made for openapi_core-0.21.0.tar.gz:

Publisher: python-publish.yml on python-openapi/openapi-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: openapi_core-0.21.0-py3-none-any.whl
  • Upload date:
  • Size: 107.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for openapi_core-0.21.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef1605ed661fdd548f0c037b92e8b1dfb6052b3ad3e93247f2896c8bdb7d4974
MD5 c99fb070f032b6f17be64c189cc94bb6
BLAKE2b-256 ff7ee3f066af76486c5e9d1b59b25693495bb48b66847d694a03fedce445dbbc

See more details on using hashes here.

Provenance

The following attestation bundles were made for openapi_core-0.21.0-py3-none-any.whl:

Publisher: python-publish.yml on python-openapi/openapi-core

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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