Skip to main content

OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0.0 spec validator

Project description

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

About

OpenAPI Spec Validator is a Python library that validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0.0 specification. The validator aims to check for full compliance with the Specification.

Installation

$ pip install openapi-spec-validator

Alternatively you can download the code and install from the repository:

$ pip install -e git+https://github.com/p1c2u/openapi-spec-validator.git#egg=openapi_spec_validator

Usage

Command Line Interface

Straight forward way:

$ openapi-spec-validator openapi.yaml

pipes way:

$ cat openapi.yaml | openapi-spec-validator -

docker way:

$ docker run -v path/to/openapi.yaml:/openapi.yaml --rm p1c2u/openapi-spec-validator /openapi.yaml

or more pythonic way:

$ python -m openapi_spec_validator openapi.yaml

Examples

Validate spec:

from openapi_spec_validator import validate_spec
from openapi_spec_validator.readers import read_from_filename

spec_dict, spec_url = read_from_filename('openapi.yaml')

# If no exception is raised by validate_spec(), the spec is valid.
validate_spec(spec_dict)

validate_spec({})

Traceback (most recent call last):
    ...
OpenAPIValidationError: 'openapi' is a required property

Add spec_url to validate spec with relative files:

validate_spec(spec_dict, spec_url='file:///path/to/spec/openapi.yaml')

You can also validate spec from url:

from openapi_spec_validator import validate_spec_url

# If no exception is raised by validate_spec_url(), the spec is valid.
validate_spec_url('http://example.com/openapi.json')

If you want to iterate through validation errors:

from openapi_spec_validator import openapi_v3_spec_validator

errors_iterator = openapi_v3_spec_validator.iter_errors(spec)

License

Copyright (c) 2017-2021, Artur Maciag, All rights reserved. Apache v2

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for openapi-spec-validator, version 0.3.0
Filename, size File type Python version Upload date Hashes
Filename, size openapi_spec_validator-0.3.0-py2-none-any.whl (31.7 kB) File type Wheel Python version py2 Upload date Hashes View
Filename, size openapi_spec_validator-0.3.0-py3-none-any.whl (31.7 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size openapi-spec-validator-0.3.0.tar.gz (26.9 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page