我vertx-Web-api-contracts
在 vertx 3.0 中使用来验证我的查询参数和表单参数
HTTPRequestValidationHandler
和ParameterTypeValidator
代码示例:
private final ParameterTypeValidator fileIdValueValidator = new IdTypeValidator().create();
private final ParameterTypeValidator tokenTypeValidator = new TokenTypeValidator().create();
private HTTPRequestValidationHandler getDeleteRequestValidations() {
final HTTPRequestValidationHandler validator = HTTPRequestValidationHandler.create()
.addQueryParamWithCustomTypeValidator(PARAM__ID, IdValueValidator, true, false)
.addHeaderParamWithCustomTypeValidator(HEADER_TOKEN, tokenTypeValidator, true, false);
return validator;
}
在这里,我使用 ParameterTypeValidator 提供自定义逻辑来验证我的参数值。我正在使用 customTypeValidator,因为我需要对 ex 的参数值进行自定义值验证。我需要验证我的 ID 参数应该包含由_分隔的四个部分(part1_part2_part3_part4)
现在,当我尝试迁移到vertx 4.0
并被vertx-Web-api-contracts
弃用时,我被迫使用vertx-web-validation
,但是 web-validation 缺少像 api-contract-validations 这样的 custompropertyvalidation。
我想怎么做,
private ValidationHandler getDeleteRequestValidations(final SchemaParser parser) {
ValidationHandler validationHandler=ValidationHandler.builder(parser)
.queryParameter(Parameters.param(PARAM__ID, stringSchema()))
.headerParameter(Parameters.param(HEADER_TOKEN,stringSchema()))
.build();
return validationHandler;
}
但我想知道如何传递/构建自定义模式,而不是使用自定义逻辑进行验证stringSchema()
。intSchema()
早些时候我正在创建自定义类并实现 ParameterTypeValidator 以提供自定义验证逻辑(如IdTypeValidator()
)。
有什么方法可以通过网络验证实现相同的目标。