Auto configuration for json-schema-validator
- Dependency
<dependency>
<groupId>ru.rnemykin.spring.boot</groupId>
<artifactId>json-schema-spring-boot-starter</artifactId>
<version>0.0.1-SNAPSHOT</version>
</dependency>
- Use default configuration or define your own
@Bean
public Library library(AbstractKeywordProcessor processor, ApplicationContext ctx) {
LibraryBuilder builder = DraftV4Library.get().thaw();
builder.addKeyword(
Keyword.newBuilder(processor.keyword())
.withSyntaxChecker(...)
.withDigester(...)
.withValidatorFactory(new SpringAwareKeywordValidatorFactory(...)
.freeze()
);
return builder.freeze();
}
- Write custom keywordValidators
@ToString
@Component
public class EnumDbValueKeywordProcessor extends AbstractKeywordProcessor {
.....
}
- Do validation (see example)
@Autowired
private JsonSchemaFactory jsonSchemaFactory;
//...
ProcessingReport report = jsonSchemaFactory.getValidator().validate(schema, entity);