在 Spring Boot 中,行校我们可以使用 Java Bean Validation API(JSR 303)来对接口参数进行校验,接口该 API 遵循标准的对参注解格式进行参数校验。
以下是数进一些常见的注解:
下面是行校一个例子,假设我们有一个用户注册接口,接口需要校验用户名和密码:
@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<String> errors = ex.getBindingResult()
.getAllErrors()
.stream()
.map(DefaultMessageSourceResolvable::getDefaultMessage)
.collect(Collectors.toList());
return ResponseEntity.badRequest().body(errors);
}
}
在上面的例子中,我们定义了一个全局异常处理器,并在其中捕获MethodArgumentNotValidException 异常,将校验失败的错误信息封装成一个列表并返回。
通过上述方式,我们就可以对接口参数进行校验,并在校验失败时返回错误信息,提高接口的健壮性和可靠性。
责任编辑:姜华 来源: 今日头条 SpringBoot参数校验(责任编辑:娱乐)
街道巡游探索游戏《Neyasnoe》上架Steam!月底发售
中国擎天软件(01297.HK)年度纯利大增 每股基本盈利为人民币42.21分
vivo Pad2发布:搭载天玑9000处理器 2399元起售