SpringBoot——优雅的输入合法性校验

优雅的输入合法性校验

一、为什么需要校验

为了接口的健壮性,我们通常除了客户端进行输入合法性校验外,在 Controller 的方法里,我们也需要对参数进行合法性校验,传统的做法是每个方法的参数都做一遍判断,这种方式和上一节讲的异常处理一个道理,不太优雅,也不易维护。

二、使用示例

@GetMapping("authorize")
public void authorize(@Valid AuthorizeIn authorize, BindingResult ret){
    if(result.hasFieldErrors()){
            List<FieldError> errorList = result.getFieldErrors();
            //通过断言抛出参数不合法的异常
            errorList.stream().forEach(item -> Assert.isTrue(false,item.getDefaultMessage()));
        }
}
@Data
public class AuthorizeIn extends BaseModel{
    @NotBlank(message = "缺少response_type参数")
    private String responseType;
    @NotBlank(message = "缺少client_id参数")
    private String ClientId;
    private String state;
    @NotBlank(message = "缺少redirect_uri参数")
    private String redirectUri;
}

我们再把验证的代码单独封装成方法:

protected void validate(BindingResult result){
    if(result.hasFieldErrors()){
        List<FieldError> errorList = result.getFieldErrors();
        errorList.stream().forEach(item -> Assert.isTrue(false,item.getDefaultMessage()));
    }
}

这样每次参数校验只需要调用 validate 方法就行了,我们可以看到代码的可读性也大大提高了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值