Phalidator 通用用户输入验证服务库设计
目标:该库为不同编程语言提供用户输入验证器代码。首个实现将在JavaScript和Java中实现。验证器由简单脚本编写,定义模型不同字段的验证表达式,并通过解析脚本构建验证树。解析和构建过程使用ANTLR4工具,通过Java实现该步骤。验证树可以直接用于测试不同实体的验证(如Bean、Map等)。此外,不同的访问者将针对不同目标语言生成代码,实现用户输入的验证,比如JavaScript/HTML-表单、JavaScript/JSON或Java/Beans等。
进展:完成了ANTLR4解析器和访问者创建验证树。Java Map验证器直接在验证树上工作,主要用于测试,支持所有依赖项。JavaScript的对象/hash/dict验证器也已部分完成。
示例:一个Person示例验证器代码如下:
person {
firstName: 必填,长度限制...
}