Валидация по JSON схеме (deprecated)#
Примечание
Данный механизм не рекомендован к использованию в SOWA. В качестве альтернативы рекомендуется использовать действие JsonValidation.
Валидация по JSON схеме представляет собой группу, содержащую в себе request и response параметры для валидации JSON сообщений. Использование request/response валидации по JSON схеме исключает возможность дополнительного подключения wsdl/xsd валидации.
Совместное использование валидаторов и цепочек: Данный механизм предполагает монопольное право на работу с контекстом запроса или ответа. В связи с этим, одновременная работа валидаторов (validators) и цепочек (chains) запрещена на уровне конфигурации, хотя и технически возможна в случае имплементации на разных фазах.
validator_json - параметры#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Опциональный |
Параметры, используемые для валидации запроса по схеме |
Параметры, описанные в разделе «validator_json - request» |
— |
|
Опциональный |
Параметры, используемые для валидации ответа по схеме |
Параметры, описанные в разделе «validator_json - response» |
— |
|
Опциональный |
Опции обработки ответа. Используется, если |
Параметры, описанные в разделе «validator_json - response_proc_options» |
— |
|
Опциональный |
Код статуса, который вернется клиенту при некорректном запросе. Используется, если |
Целочисленное значение |
|
|
Опциональный |
Текст сообщения об ошибке, который вернется клиенту при некорректном запросе. Используется, если |
Текстовое значение |
— |
|
Опциональный |
Код статуса, который вернется клиенту при некорректном ответе. Используется, если |
Целочисленное значение |
|
|
Опциональный |
Текст сообщения об ошибке, который вернется клиенту при некорректном ответе. Используется, если |
Текстовое значение |
— |
|
Опциональный |
Допускаются ли символы после JSON сообщения. Используется, если |
|
|
|
Опциональный |
Решение валидатора, если не обнаружено подходящего правила для валидации сообщения |
|
|
validator_json - request#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Обязательный |
Путь к файлу схемы, с помощью которой происходит валидация |
Строковое значение |
— |
|
Опциональный |
Вкл./Откл. использование дефолтного правила, если другие правила валидации не могут быть использованы. Дефолтное правило не может быть использовано, если на вход приходит пустое тело запроса. Для дефолтного правила отсутствует возможность указания параметров url, method и params |
|
|
|
Опциональный |
Соотнесение схемы валидации JSON объекта и адрес, по которому был отправлен запрос. Возможность использования регулярного выражения. Используется, если |
Строковое значение |
— |
|
Опциональный |
Соотнесение схемы валидации JSON объекта и метод запроса. Используется, если |
|
— |
|
Опциональный |
Условие для вызова валидатора при использовании параметров в запросе. Используется, если |
Параметры, описанные в разделе «validator_json - params» |
— |
|
Опциональный |
Разрешать ли пустые тела |
|
— |
|
Опциональный |
Возможность передавать примитивы (integer/string/boolean/null и т.п.) в корне json. В случае |
|
|
|
Опциональный |
Выполнение преобразований над телом запроса/ответа и последующая валидация результата. Доступен вариант: formdata to json |
Последовательность строковых значений: |
— |
validator_json - response#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Обязательный |
Путь к файлу схемы, с помощью которой происходит валидация |
Строковое значение |
— |
|
Опциональный |
Соотнесение схемы валидации JSON объекта и адрес, по которому был получен ответ. Возможность использования регулярного выражения |
Строковое значение |
— |
|
Опциональный |
Соотнесение схемы валидации JSON объекта и метод запроса |
|
— |
|
Опциональный |
Условие для вызова валидатора при использовании параметров в ответе |
Параметры, описанные в разделе «validator_json - params» |
— |
|
Опциональный |
Разрешать ли пустые тела |
|
— |
|
Опциональный |
Выполнение преобразований над телом запроса/ответа и последующая валидация результата. Доступен вариант: formdata to json |
Последовательность строковых значений: |
— |
|
Опциональный |
Схема валидации применяется только для ответов, удовлетворяющих комбинации оператора и паттерна |
Параметры, описанные в разделе «validator_json - response_code» |
— |
validator_json - params#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Обязательный |
Имя аргумента |
Текстовое значение |
— |
|
Обязательный |
Операция для аргумента |
|
— |
|
Обязательный |
Паттерн, применяемый к аргументу. Возможность использования регулярного выражения. Для использования символов `\ ^ $ . |
? * + ( ) [ ] { } - |
Текстовое значение |
validator_json - response_code#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Обязательный |
Операция для аргумента |
|
— |
|
Обязательный |
Паттерн, применяемый к статус коду ответа |
Текстовое значение |
— |
validator_json - response_proc_options#
Название |
Обязательность |
Описание |
Возможные значения |
Значение по умолчанию |
|---|---|---|---|---|
|
Опциональный |
Максимальный размер сообщения, который валидируется без буферизации в файл |
Текстовое значение с суффиксом: число (байты), |
|
Пример использования json-валидатора:
validators:
validator_json:
request:
- schema: schemes/json/ABO/Banking.Products.Brokerage.TradeHistory.Get.POST.rq.v1.0.json
url: ^\/brokerage-info-ib\/rest\/v1\.0\/ib\/Banking\/Product\/Brokerage\/TradeHistory\/Get$
method: post
- schema: schemes/json/ABO/Banking.Products.Brokerage.TradeHistory.Get.POST.rq.v2.0.json
url: ^\/brokerage-info-ib\/rest\/v2\.0\/ib\/Banking\/Product\/Brokerage\/TradeHistory\/Get$
method: post
response:
- schema: schemes/json/ABO/Banking.Products.Brokerage.TradeHistory.Get.POST.rs.v1.0.json
response_code:
operator: "!~"
pattern: "(?:500|502|503|504)"
url: ^\/brokerage-info-ib\/rest\/v1\.0\/ib\/Banking\/Product\/Brokerage\/TradeHistory\/Get$
method: post
- schema: schemes/json/ABO/Banking.Products.Brokerage.TradeHistory.Get.POST.rs.v2.0.json
response_code:
operator: "!~"
pattern: "(?:500|502|503|504)"
url: ^\/brokerage-info-ib\/rest\/v2\.0\/ib\/Banking\/Product\/Brokerage\/TradeHistory\/Get$
method: post