Skip to content

Commit cbb15dc

Browse files
author
Tom Reitz
committed
update to components.schemas
1 parent fc230a4 commit cbb15dc

2 files changed

Lines changed: 11 additions & 11 deletions

File tree

lightbeam/api.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -344,22 +344,22 @@ def get_params_for_endpoint(self, endpoint):
344344

345345
def get_required_params_from_swagger(self, swagger, definition, prefix=""):
346346
params = {}
347-
use_paths = False
347+
use_definitions = False
348348
if "definitions" in swagger.keys():
349349
schema = swagger["definitions"][definition]
350-
elif "paths" in swagger.keys():
351-
schema = swagger["paths"][definition]
352-
use_paths = True
350+
use_definitions = True
351+
elif "components" in swagger.keys() and "schemas" in swagger["components"].keys():
352+
schema = swagger["components"]["schemas"][definition]
353353
else:
354-
self.logger.critical(f"Swagger contains neither `definitions` nor `paths` - check that the Swagger is valid.")
354+
self.logger.critical(f"Swagger contains neither `definitions` nor `components.schemas` - check that the Swagger is valid.")
355355

356356
for requiredProperty in schema["required"]:
357357
if "$ref" in schema["properties"][requiredProperty].keys():
358358
sub_definition = schema["properties"][requiredProperty]["$ref"]
359-
if use_paths:
360-
sub_definition = sub_definition.replace("#/paths/", "")
361-
else:
359+
if use_definitions:
362360
sub_definition = sub_definition.replace("#/definitions/", "")
361+
else:
362+
sub_definition = sub_definition.replace("#/components/schemas/", "")
363363
sub_params = self.get_required_params_from_swagger(swagger, sub_definition, prefix=requiredProperty+".")
364364
for k,v in sub_params.items():
365365
params[k] = v

lightbeam/validate.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ def validate_endpoint(self, swagger, endpoint, local_descriptors=[]):
3333
definition = util.camel_case(self.lightbeam.config["namespace"]) + "_" + util.singularize_endpoint(endpoint)
3434
if "definitions" in swagger.keys():
3535
resource_schema = swagger["definitions"][definition]
36-
elif "paths" in swagger.keys():
37-
resource_schema = swagger["paths"][definition]
36+
elif "components" in swagger.keys() and "schemas" in swagger["components"].keys():
37+
resource_schema = swagger["components"]["schemas"][definition]
3838
else:
39-
self.logger.critical(f"Swagger contains neither `definitions` nor `paths` - check that the Swagger is valid.")
39+
self.logger.critical(f"Swagger contains neither `definitions` nor `components.schemas` - check that the Swagger is valid.")
4040

4141
resolver = RefResolver("test", swagger, swagger)
4242
validator = Draft4Validator(resource_schema, resolver=resolver)

0 commit comments

Comments
 (0)