0x00 关于参数校验
开题: 在Spring开发中, 我们习惯了, 在参数Bean中添加JSR标准的参数校验Annotation,
那么, 我们在rust接口开发时, 同样也会面临这样的开发需求.
如果没有相应的开发框架, 那么接口的参数校验将会变得异常痛苦.
经过一个星期左右的学习和实践,终于完成此篇成果.
0x01 使用体验
使用体验上, 与Java开发并无二致.
#[derive(BeanCheck)]
struct UserDO {
#[Min(30)]
pub min_age: u32,
#[Max(20)]
#[Range(1, 100)]
pub age: u16,
#[Length(1, 13)]
pub username: String,
#[Pattern(r"^\d{1,5}$")]
pub password: String,
#[Email]
pub email: String,
pub mobile: String,
}
fn main() {
let u = UserDO {
min_age: 325,
age: 20,
username: "gorey".to_string(),
password: "12345".to_string(),
email: "aa@qq.com".to_string(),
mobile: "13812341234".to_string()
};