对请求参数进行后端验证:
创建参数验证类:
1.必填验证:
@Validate(name = "require", description = "验证请求参数不可为null")
public class RequireValidate implements ValidateHandler{
/**
* 必填验证
*/
@Override
public void handleValidate(ApiInvocation invoke, String paramName, Object value) throws Exception {
Assert.notNull(value);
}
/**
* 渲染验证失败的返回视图
*/
@Override
public void handleError(ApiInvocation invoke, Exception validateError) {
invoke.renderException(new Json("{error:'"+validateError.getMessage()+"'}"));
}
}
2.邮箱验证:
@Validate(name = "email", description = "邮箱格式验证")
public class EmailValidate implements ValidateHandler {
/**
* 邮箱格式验证
*/
@Override
public void handleValidate(ApiInvocation invoke, String paramName, Object value) throws Exception {
String check = "^([a-z0-9A-Z]+[-|_|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";
Pattern regex = Pattern.compile(check);
Matcher matcher = regex.matcher((String)value);
Assert.isTrue(matcher.matches(),"请填写正确邮箱");
}
/**
* 渲染验证失败的返回视图
*/
@Override
public void handleError(ApiInvocation invoke, Exception validateError) {
invoke.renderException(new Json("{error:'"+validateError.getMessage()+"'}"));
}
}
控制器中调用参数验证:
@Get(path = "email")
public void validate(@HttpParam(validate={"require","email"}) String email){
}