-
-
Notifications
You must be signed in to change notification settings - Fork 61
/
__init__.py
89 lines (76 loc) · 2.74 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# -*- coding: utf-8 -*-
from openapi_spec_validator.shortcuts import (
validate_spec_factory, validate_spec_url_factory,
)
from openapi_spec_validator.handlers import UrlHandler, FileObjectHandler
from openapi_spec_validator.schemas import get_openapi_schema
from openapi_spec_validator.factories import \
Draft202012JSONSpecValidatorFactory, Draft4JSONSpecValidatorFactory
from openapi_spec_validator.validators import SpecValidator
__author__ = 'Artur Maciag'
__email__ = 'maciag.artur@gmail.com'
__version__ = '0.3.1'
__url__ = 'https://github.com/p1c2u/openapi-spec-validator'
__license__ = 'Apache License, Version 2.0'
__all__ = [
'openapi_v2_spec_validator',
'openapi_v3_spec_validator',
'openapi_v31_spec_validator',
'validate_v2_spec',
'validate_v3_spec',
'validate_spec',
'validate_v2_spec_url',
'validate_v3_spec_url',
'validate_spec_url',
]
file_object_handler = FileObjectHandler()
all_urls_handler = UrlHandler('http', 'https', 'file')
default_handlers = {
'<all_urls>': all_urls_handler,
'http': UrlHandler('http'),
'https': UrlHandler('https'),
'file': UrlHandler('file'),
}
# v2.0 spec
schema_v2, schema_v2_url = get_openapi_schema('2.0')
openapi_v2_validator_factory = Draft4JSONSpecValidatorFactory(
schema_v2, schema_v2_url,
resolver_handlers=default_handlers,
)
openapi_v2_spec_validator = SpecValidator(
openapi_v2_validator_factory,
resolver_handlers=default_handlers,
)
# v3.0 spec
schema_v3, schema_v3_url = get_openapi_schema('3.0')
openapi_v3_validator_factory = Draft4JSONSpecValidatorFactory(
schema_v3, schema_v3_url,
resolver_handlers=default_handlers,
)
openapi_v3_spec_validator = SpecValidator(
openapi_v3_validator_factory,
resolver_handlers=default_handlers,
)
# v3.1 spec
schema_v31, schema_v31_url = get_openapi_schema('3.1')
openapi_v31_validator_factory = Draft202012JSONSpecValidatorFactory(
schema_v31, schema_v31_url,
resolver_handlers=default_handlers,
)
openapi_v31_spec_validator = SpecValidator(
openapi_v31_validator_factory,
resolver_handlers=default_handlers,
)
# shortcuts
validate_v2_spec = validate_spec_factory(openapi_v2_spec_validator.validate)
validate_v2_spec_url = validate_spec_url_factory(
openapi_v2_spec_validator.validate, default_handlers)
validate_v3_spec = validate_spec_factory(openapi_v3_spec_validator.validate)
validate_v3_spec_url = validate_spec_url_factory(
openapi_v3_spec_validator.validate, default_handlers)
validate_v31_spec = validate_spec_factory(openapi_v31_spec_validator.validate)
validate_v31_spec_url = validate_spec_url_factory(
openapi_v31_spec_validator.validate, default_handlers)
# aliases to the latest version
validate_spec = validate_v3_spec
validate_spec_url = validate_v3_spec_url