spring-boot - 如何将 Valid 和 NotBlank 用于 swagger 对象?
问题描述
在我的项目中,我有一个控制器和同一个控制器接受的 dto。决定更合适地使用 swagger-codegen。然后是验证问题,我将其应用于我的 dto,但我无法应用于 swagger 创建的对象。
@Data
public class MyCustomDto {
@NotBlank(message = ".... ")
private String a;
@NotBlank(message = ".... ")
private String b;
}
在控制器中使用带有注释的 MyCustomDto @Valid
,我可以验证数据,如果这些字段之一为空,则请求将不起作用。
@javax.annotation.Generated(value = "io.swagger.codegen.v3.generators.java.JavaClientCodegen", date = "2021-05-23T15:23:40.775555+04:00[Asia/Baku]")
public class MySwaggerDto{
@JsonProperty("a")
private String a= null;
@JsonProperty("b")
private String b= null;
}
这些字段的我的 yaml 文件部分
a:
type: string
description: sfdsfsdfdsf
example: hh
b:
type: string
description: asdsadas
example: kjhgjgj
可以使 swaggerdto 与自定义 dto 类似地工作吗?我有一个带有handleMethodArgumentNotValid 方法的@ControllerAdvice 类,我用它来响应输入参数不正确的请求。
@ControllerAdvice
@Slf4j
public class MyExceptionsHandler extends ResponseEntityExceptionHandler {
@Override
protected ResponseEntity<Object> handleMethodArgumentNotValid(MethodArgumentNotValidException ex,
HttpHeaders headers, HttpStatus status, WebRequest request) {
//my some code
return ResponseEntityBuilder.build(err);
}
}
解决方案
推荐阅读
- javascript - 是否可以提交由 Ajax 生成的表单?
- laravel - 录制音频,提交,将其存储在服务器中,并将其路径存储在数据库中。Laravel
- html - 是否可以在 fullpage.js 的部分及其内容之间插入蒙版背景?
- bash - 如何在已挂载的文件系统上使用 chown
- python - python有条件代码解释吗?
- c++ - 为什么 C/++ scanf 函数需要引用变量作为参数?
- r - 如何在一张图中绘制多条 ecdf 线
- c# - 为什么反转方法调用顺序也会反转执行时间?
- c++ - 类模板的友元函数是否应该成为所有实例化的友元?
- security - 为什么在 JWT Token 中包含 Header 和 Payload?