项目参见:
https://gitee.com/xxssyyyyssxx/validation
compile "top.jfunc.validation:validation-core:1.0.1"
compile "top.jfunc.validation:validation-spring:1.0.1"
all input is evil!!
服务端参数校验是保证数据一致性和避免脏数据的最后关口,必须保证参数符合要求才能通过,所以参数校验及其重要。参数校验说白了就是对输入值进行判断,如果符合预期,那么就让通过,否则直接抛出异常。基于此,在gitee上遇到了实现此想法的非常好的项目。https://gitee.com/fetech-framework/smart-validator 。在此项目基础上做了一些优化形成自己的项目:https://gitee.com/xxssyyyyssxx/validation。优化的地方主要为:
- 命名优化,比如ValidateUtils->ValidateValue,is->with使意义更明确
- 正则表达式使用Pattern缓存
- 去除ParamException异常,使用IllegalArgumentException替代
- 小bug修复。
使用方式为:
ValidateValue.with(jsonObject.getString("name")).notNull("名字不允许为空")
.and(jsonObject.getString("idCard")).notNull("身份证不允许为空")
.and(jsonObject.getString("cardFront")).notNull("身份证正面照片不允许为空")
.and(jsonObject.getString("cardBack")).notNull("身份证反面照片不允许为空");