• SB 查询、添加数据的接口 实现 validation 数据校检


    导入GAV  因为这个框架springboot 自带有 所以呢 不用版本:

    然后我们直接在请求类上写校检注解    【注: 这里的EbookQueryReq 是请求类  继承了 PageReq 类】

    因为我们查询的接口是暴露的 ,如果别人拿到了 ,查1000000000+条数据 我们服务器岂不是崩了 几千回 都不够嘛  ,所以这里针对这个解决进行校检:

    因为查询是分包查询 所以这里直接设置:

     可以看到 直接用注解。这只是设置了校检规则 ,让请求参数 page  和 size  有规定。

    启用校检

    启用的话要在控制器参数哪里写注解开启:

    2021年10月26日 10:25:10: 补充:  如果你效果 那么框框那个换成  @Validated  即可!  记住!

    我们测试一下:

    可以看到了报错,信息也是给出来了  因为最多就查询20 你既然查2000  那我没的说哈


    既然现在知道怎么开启校检 和 设置校检规则  那么我们现在开始解决这个问题 并返回给前端 让他报个错,美滋滋:

     是这个异常嘛  所以我们自定义异常咧:

    package com.bihu.study.Controller;
    
    import com.bihu.study.Resp.CommonResp;
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.validation.BindException;
    import org.springframework.web.bind.annotation.ControllerAdvice;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    @ControllerAdvice
    public class ControllerExceptionHandler {
        private static final Logger LOG = LoggerFactory.getLogger(ControllerExceptionHandler.class);
    
        /**
         * 校验异常统一处理
         */
        @ExceptionHandler(value = BindException.class)
        @ResponseBody
        public CommonResp validExceptionHandler(BindException e) {
            CommonResp commonResp = new CommonResp();   //新建一个请求类
            //打印LOG
            LOG.warn("参数校验失败:{}", e.getBindingResult().getAllErrors().get(0).getDefaultMessage());  
            //设置请求失败
            commonResp.setSuccess(false);
            //把我们失败的默认信息返回给前端  
            commonResp.setMessage(e.getBindingResult().getAllErrors().get(0).getDefaultMessage());
            return commonResp;
        }
    }
    View Code

    简简单单!

    前端收到false 那么就显示message 即可,自己发挥.

    其实不止这个  还有很多接口你要去校检 比如 添加,你得要是不为空吧 什么什么的


    2021年10月26日 10:59:48  补充:

    有一次我做了校检他不报异常

    一看是

    MethodArgumentNotValidException

    所以这次直接针对他处理 ,办法一样:

    红框框就是获取他的错误默认信息(自己设置的)。

    本文来自博客园,作者:咸瑜,转载请注明原文链接:https://www.cnblogs.com/bi-hu/p/15415668.html

  • 相关阅读:
    Delphi 之 内存篇(二)
    VC++ 之 第八课(面向对象三)
    Delphi API 之 BitBlt
    我所认为的极客精神(一)
    DOS程序员手册(十五)
    DOS程序员手册(十四)
    DOS程序员手册(十三)
    DOS程序员手册(十二)
    DOS程序员手册(十一)
    DOS程序员手册(十)
  • 原文地址:https://www.cnblogs.com/bi-hu/p/15415668.html
Copyright © 2020-2023  润新知