142 lines
5.2 KiB
Plaintext
142 lines
5.2 KiB
Plaintext
Metadata-Version: 2.3
|
|
Name: openapi-schema-validator
|
|
Version: 0.6.3
|
|
Summary: OpenAPI schema validation for Python
|
|
Home-page: https://github.com/python-openapi/openapi-schema-validator
|
|
License: BSD-3-Clause
|
|
Keywords: openapi,swagger,schema
|
|
Author: Artur Maciag
|
|
Author-email: maciag.artur@gmail.com
|
|
Requires-Python: >=3.8.0,<4.0.0
|
|
Classifier: Development Status :: 4 - Beta
|
|
Classifier: Intended Audience :: Developers
|
|
Classifier: License :: OSI Approved :: BSD License
|
|
Classifier: Operating System :: OS Independent
|
|
Classifier: Programming Language :: Python :: 3
|
|
Classifier: Programming Language :: Python :: 3.8
|
|
Classifier: Programming Language :: Python :: 3.9
|
|
Classifier: Programming Language :: Python :: 3.10
|
|
Classifier: Programming Language :: Python :: 3.11
|
|
Classifier: Programming Language :: Python :: 3.12
|
|
Classifier: Programming Language :: Python :: 3.13
|
|
Classifier: Topic :: Software Development :: Libraries
|
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
Classifier: Typing :: Typed
|
|
Provides-Extra: docs
|
|
Requires-Dist: jsonschema (>=4.19.1,<5.0.0)
|
|
Requires-Dist: jsonschema-specifications (>=2023.5.2)
|
|
Requires-Dist: rfc3339-validator
|
|
Project-URL: Repository, https://github.com/python-openapi/openapi-schema-validator
|
|
Description-Content-Type: text/x-rst
|
|
|
|
************************
|
|
openapi-schema-validator
|
|
************************
|
|
|
|
.. image:: https://img.shields.io/pypi/v/openapi-schema-validator.svg
|
|
:target: https://pypi.python.org/pypi/openapi-schema-validator
|
|
.. image:: https://travis-ci.org/python-openapi/openapi-schema-validator.svg?branch=master
|
|
:target: https://travis-ci.org/python-openapi/openapi-schema-validator
|
|
.. image:: https://img.shields.io/codecov/c/github/python-openapi/openapi-schema-validator/master.svg?style=flat
|
|
:target: https://codecov.io/github/python-openapi/openapi-schema-validator?branch=master
|
|
.. image:: https://img.shields.io/pypi/pyversions/openapi-schema-validator.svg
|
|
:target: https://pypi.python.org/pypi/openapi-schema-validator
|
|
.. image:: https://img.shields.io/pypi/format/openapi-schema-validator.svg
|
|
:target: https://pypi.python.org/pypi/openapi-schema-validator
|
|
.. image:: https://img.shields.io/pypi/status/openapi-schema-validator.svg
|
|
:target: https://pypi.python.org/pypi/openapi-schema-validator
|
|
|
|
About
|
|
#####
|
|
|
|
Openapi-schema-validator is a Python library that validates schema against:
|
|
|
|
* `OpenAPI Schema Specification v3.0 <https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#schemaObject>`__ which is an extended subset of the `JSON Schema Specification Wright Draft 00 <http://json-schema.org/>`__.
|
|
* `OpenAPI Schema Specification v3.1 <https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.1.0.md#schemaObject>`__ which is an extended superset of the `JSON Schema Specification Draft 2020-12 <http://json-schema.org/>`__.
|
|
|
|
|
|
Documentation
|
|
#############
|
|
|
|
Check documentation to see more details about the features. All documentation is in the "docs" directory and online at `openapi-schema-validator.readthedocs.io <https://openapi-schema-validator.readthedocs.io>`__
|
|
|
|
|
|
Installation
|
|
############
|
|
|
|
Recommended way (via pip):
|
|
|
|
.. code-block:: console
|
|
|
|
pip install openapi-schema-validator
|
|
|
|
Alternatively you can download the code and install from the repository:
|
|
|
|
.. code-block:: console
|
|
|
|
pip install -e git+https://github.com/python-openapi/openapi-schema-validator.git#egg=openapi_schema_validator
|
|
|
|
|
|
Usage
|
|
#####
|
|
|
|
To validate an OpenAPI v3.1 schema:
|
|
|
|
.. code-block:: python
|
|
|
|
from openapi_schema_validator import validate
|
|
|
|
# A sample schema
|
|
schema = {
|
|
"type": "object",
|
|
"required": [
|
|
"name"
|
|
],
|
|
"properties": {
|
|
"name": {
|
|
"type": "string"
|
|
},
|
|
"age": {
|
|
"type": ["integer", "null"],
|
|
"format": "int32",
|
|
"minimum": 0,
|
|
},
|
|
"birth-date": {
|
|
"type": "string",
|
|
"format": "date",
|
|
},
|
|
"address": {
|
|
"type": 'array',
|
|
"prefixItems": [
|
|
{ "type": "number" },
|
|
{ "type": "string" },
|
|
{ "enum": ["Street", "Avenue", "Boulevard"] },
|
|
{ "enum": ["NW", "NE", "SW", "SE"] }
|
|
],
|
|
"items": False,
|
|
}
|
|
},
|
|
"additionalProperties": False,
|
|
}
|
|
|
|
# If no exception is raised by validate(), the instance is valid.
|
|
validate({"name": "John", "age": 23, "address": [1600, "Pennsylvania", "Avenue"]}, schema)
|
|
|
|
validate({"name": "John", "city": "London"}, schema)
|
|
|
|
Traceback (most recent call last):
|
|
...
|
|
ValidationError: Additional properties are not allowed ('city' was unexpected)
|
|
|
|
By default, the latest OpenAPI schema syntax is expected.
|
|
|
|
For more details read about `Validation <https://openapi-schema-validator.readthedocs.io/en/latest/validation.html>`__.
|
|
|
|
Related projects
|
|
################
|
|
* `openapi-core <https://github.com/python-openapi/openapi-core>`__
|
|
Python library that adds client-side and server-side support for the OpenAPI.
|
|
* `openapi-spec-validator <https://github.com/python-openapi/openapi-spec-validator>`__
|
|
Python library that validates OpenAPI Specs against the OpenAPI 2.0 (aka Swagger) and OpenAPI 3.0 specification
|
|
|