Библиотека предоставляет возможность валидации строки в json-формате по валидациям, хранимым в базе данных.
Валидации представляют собой SpEL-выражения и Groovy-скрипты, возвращаемые true
при успешности валидации и false
-- при неудаче.
Проверки описываются в таблице cdv.validation (см. комментарии к таблице).
Поле lang может быть SPEL
или GROOVY
.
- В качестве lang указать
SPEL
. - Проверяемый json в виде строки доступен как
#data
. - В проверках можно использовать функцию
#jsonPath
(см. ниже). - Для кастомной инициализации контекста SpEL надо реализовать EvaluationContextInitializer и передать его в конструкторе SpelValidationRepository.
Функция является обёрткой Jayway JsonPath (см. тут).
Синтаксис:
#jsonPath(#data, '<json path>')
,
где jsonPath
- функция ru.i_novus.components.cdv.inmemory.json.impl.util.JsonPathUtils.evaluate
,
data
- проверяемый json.
- В качестве lang указать
GROOVY
. - Проверяемый json в виде JsonNode доступен как
data
. - Для разбора строки в json можно использовать JsonSlurper.
- Для кастомной инициализации контекста Groovy надо реализовать GroovyContextInitializer и передать его в конструкторе GroovyValidationRepository.