SpringBoot接口对参数进行校验

在 Spring Boot 中,我们可以使用 Java Bean Validation API(JSR 303)来对接口参数进行校验,该 API 遵循标准的注解格式进行参数校验。

以下是一些常见的注解:

  • @NotNull:校验对象是否为 null;
  • @Size(min, max):校验字符串的长度是否在 min 和 max 之间;
  • @Min:校验数字是否大于等于指定值;
  • @Max:校验数字是否小于等于指定值;
  • @Email:校验字符串是否符合 Email 格式。

下面是一个例子,假设我们有一个用户注册接口,需要校验用户名和密码:

@RestController
public class UserController {

@PostMapping("/register")
public ResponseEntity registerUser(@RequestBody @Valid UserDto userDto) {
// 处理用户注册请求
return ResponseEntity.ok().build();
}

public static class UserDto {
@NotNull
private String username;

@NotNull
@Size(min = 6, max = 20)
private String password;

public String getUsername() {
return username;
}

public void setUsername(String username) {
this.username = username;
}

public String getPassword() {
return password;
}

public void setPassword(String password) {
this.password = password;
}
}
}

在上面的例子中,我们在 UserDto 类上使用了 @Valid 注解,该注解会告诉 Spring Boot 对该对象进行校验。在 UserDto 类中,我们使用了 @NotNull 和 @Size 注解对 username 和 password 进行校验,保证它们不为 null,且 password 的长度在 6 到 20 之间。

如果校验失败,Spring Boot 会抛出MethodArgumentNotValidException 异常,我们可以在 @ExceptionHandler 中捕获该异常,并返回一个包含错误信息的 JSON 响应,例如:

@RestControllerAdvice
public class GlobalExceptionHandler {

@ExceptionHandler(MethodArgumentNotValidException.class)
public ResponseEntity handleMethodArgumentNotValidException(MethodArgumentNotValidException ex) {
List errors = ex.getBindingResult()
.getAllErrors()
.stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.toList());
return ResponseEntity.badRequest().body(errors);
}
}

在上面的例子中,我们定义了一个全局异常处理器,并在其中捕获MethodArgumentNotValidException 异常,将校验失败的错误信息封装成一个列表并返回。

通过上述方式,我们就可以对接口参数进行校验,并在校验失败时返回错误信息,提高接口的健壮性和可靠性。

网站名称:SpringBoot接口对参数进行校验
网站地址:http://www.csdahua.cn/qtweb/news30/421480.html

网站建设、网络推广公司-快上网,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 快上网