本文主要解决问题:
1.实体参数校验通过框架层面解决,灵活使用javax.validation
2.针对参数格式异常,统一抛出ParamException,框架层面拦截异常,解析成code和message返回给前端
参数校验:
1.controller入参前加上@Validated or @Valid
2.参数如果表单嵌套 参数前加上@Valid
controller:
@ApiOperation("用户注册")
@PostMapping("/user-service/users/user")
public CommonResult<Long> register(@Validated @RequestBody UserRequest userRequest) {
return CommonResult.ok(userService.register(userRequest));
}
request
@ApiModelProperty("用户名")
@NotEmpty(message = "姓名不能为空")
private String userName;
@ApiModelProperty("邮箱")
private String email;
@ApiModelProperty("手机")
@NotEmpty(message = "手机不能为空")
private String cellphone;
@NotEmpty(message = "角色不能为空")
@EnumValue(enumClass = Role.class, enumMethod = "isValidName")