在 DTO 上配置 Swagger javax 验证约束
2022-09-01 19:34:02
我使用的是 Swagger (1.5.8)。我希望我的定义能够检测 DTO 上的 JSR-303 注释,以便我可以记录 API 的验证约束。swagger.json
javax.validation
我希望注释(如此示例)将显示有关最小值(44)的内容,但事实并非如此。@Min
@POST
@ApiOperation(value = "post", httpMethod = "POST")
public Response post(
@QueryParam("id") @NotNull @Min(44) Integer id) {...}
结果是:swagger.json
"/foo": {
"post": {
"operationId": "post",
...
"parameters": [
{
"in": "body",
"name": "id",
"description": "id",
"required": false,
"schema": {
"type": "integer",
"format": "int32"
}
}
Swagger已经关闭了对此功能的拉取请求,但我不清楚在Swagger定义中在哪里/如何能够使用它。
我希望能够做这样的事情:
FooController
@POST
public void postFoo(@Valid @RequestBody FooDTO fooDto) {...}
FooDTO
public class FooDTO {
@NotNull
@Size(min = 1, max = 100)
private Integer myInt;
}
Desired/Expected swagger.json Output:
"FooDTO": {
"type": "object",
"required": [
"myInt"
],
"properties": {
"myInt": {
"type": "number",
"format": "integer",
"minimum": "1",
"maximum": "100",
...
配置 Swagger 模块/插件以启用 ModelResolver
和 BeanValidator
等功能的首选方法是什么,以便它们检查我的 DTO 上的注释?