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.22.0.tar.gz (109.2 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.22.0-py3-none-any.whl (108.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: openapi_core-0.22.0.tar.gz
  • Upload date:
  • Size: 109.2 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.22.0.tar.gz
Algorithm Hash digest
SHA256 b30490dfa74e3aac2276105525590135212352f5dd7e5acf8f62f6a89ed6f2d0
MD5 19895f201607420cadb2d269ee6ad532
BLAKE2b-256 fd65ee75f25b9459a02df6f713f8ffde5dacb57b8b4e45145cde4cab28b5abba

See more details on using hashes here.

Provenance

The following attestation bundles were made for openapi_core-0.22.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.22.0-py3-none-any.whl.

File metadata

  • Download URL: openapi_core-0.22.0-py3-none-any.whl
  • Upload date:
  • Size: 108.4 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.22.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8fb7c325f2db4ef6c60584b1870f90eeb3183aa47e30643715c5003b7677a149
MD5 554c3de435d026946ad92bd4def65971
BLAKE2b-256 5b8ea1bf9e7d1b170122aa33b6cf2c788b68824712427deb19795eb7db1b8dd5

See more details on using hashes here.

Provenance

The following attestation bundles were made for openapi_core-0.22.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

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