Source code for chaosmonkey.api.request_validator
from chaosmonkey.api.api_errors import APIError
from jsonschema import validate, ValidationError
[docs]def validate_payload(request, schema):
"""
validates a request payload against a json schema
:param request: request received with valid json body
:param schema: schema to validate the request payload
:return: True
:raises: :meth:`chaosmonkey.api.api_errors`
"""
try:
json = request.get_json()
validate(json, schema)
except ValidationError as e:
raise APIError("invalid payload %s" % e.message)
except Exception:
raise APIError("payload must be a valid json")
else:
return True