openapi-schema-validator
Openapi-schema-validator is a Python library that validates schema against:
OpenAPI Schema Specification v3.0 which is an extended subset of the JSON Schema Specification Wright Draft 00.
OpenAPI Schema Specification v3.1 which is an extended superset of the JSON Schema Specification Draft 2020-12.
OpenAPI Schema Specification v3.2 using the published OAS 3.2 JSON Schema dialect resources.
Installation
Pip + PyPI (recommended)
pip install openapi-schema-validator
Pip + the source
pip install -e git+https://github.com/python-openapi/openapi-schema-validator.git#egg=openapi_schema_validator
Usage
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)
Read more about the Schema validation.
Configuration
Environment variables:
OPENAPI_SCHEMA_VALIDATOR_COMPILED_VALIDATOR_CACHE_MAX_SIZEMaximum number of compiled validators kept by thevalidateshortcut cache. Default:128. Loaded once at first use.
See Schema validation for runtime behavior details.
License
The project is under the terms of BSD 3-Clause License.