Spring Boot GET请求参数校验:如何优雅地处理入参验证?(校验.请求.优雅.验证.参数...)

wufei123 发布于 2025-01-09 阅读(22)

spring boot get请求参数校验:如何优雅地处理入参验证?

在spring boot中对get请求进行入参校验

在spring boot中,对于post请求,使用@requestbody和@valid注解可以方便地进行入参校验。但对于get请求,直接使用@requestparam和@valid注解却不能达到预期效果。

要解决这个问题,可以通过两种方式:

方案一:使用javabean参数对象

将get请求的参数封装成一个javabean对象,并在该对象上添加jsr-303注解进行校验。例如:

@getmapping("/api")
public string apiget(@valid apigetrequest request) {
    // ...
}

public class apigetrequest {
    @notnull
    private long feedid;

    // getters and setters
}

方案二:自定义全局异常处理器

除了方案一之外,还可以通过自定义全局异常处理器的方式统一处理未通过校验的异常。例如:

@ControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(MissingServletRequestParameterException.class)
    @ResponseBody
    public String handleMissingParams(MissingServletRequestParameterException ex) {
        String name = ex.getParameterName();
        // 格式化返回的错误信息
        return "校验失败:" + name + ":不能为null";
    }
}

以上就是Spring Boot GET请求参数校验:如何优雅地处理入参验证?的详细内容,更多请关注知识资源分享宝库其它相关文章!

标签:  校验 请求 优雅 

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。