JsonValidation#
Действие JsonValidation предназначено для валидации сообщения по JSON схеме.
Параметры:
Название |
Обязательность |
Допустимые значения |
Описание |
|---|---|---|---|
validation_schema |
+ |
Элемент вида {type: file, path: путь} |
Обязательный параметр, описывающий относительный путь к схеме валидации от каталога ресурсов профиля, задается в виде: {type: file, path: путь} |
action |
- |
deny/ignore |
Определяет реакцию на несоответствие схеме валидации: deny - блокировка; ignore - пропуск. По умолчанию - deny. |
Пример:
chains:
request_chains:
- actions:
- action: JsonValidation
conditions:
- {var: $request_method, operator: '=', val: 'POST'}
params:
validation_schema: {type: file, path: schemes/request_post.json}
- action: JsonValidation
conditions:
- {var: $request_method, operator: '=', val: 'PUT'}
params:
validation_schema: {type: file, path: schemes/request_put.json}
message: $clj_request_body
response_chains:
- actions:
- action: JsonValidation
conditions:
- {var: $request_method, operator: '=', val: 'POST'}
params:
validation_schema: {type: file, path: schemes/response_post.json}
- action: JsonValidation
conditions:
- {var: $request_method, operator: '=', val: 'PUT'}
params:
validation_schema: {type: file, path: schemes/response_put.json}
message: $clj_response_body
В приведенном примере валидация осуществляется для запросов с методами POST и PUT по соответствующим схемам для инициирующего сообщения clj_request_body и для тех же методов, для тела ответа, заданного переменной clj_response_body. Обратите внимание, что запросы/ответы с другими отправленными/полученными методами в текущей конфигурации игнорируются. Если мы хотим предпринимать какие-либо действия, то необходимо либо определять действия ConditionChecker для блокировки таких запросов/ответов, либо другие проверяющие действия.
Заполняемые переменные#
По результатам своего выполнения, действие JsonValidation может заполнять следующие переменные:
clj_validation_schema -путь к схеме валидации, которая применялась для проверки;
clj_validation_error_text - сериализованный объект со списком ошибок в base64;
clj_validation_error_code - код ошибки;
clj_validation_error_description - расшифровка кода ошибки;
clj_validation_error_description_ext - подробное описание ошибок.