Подтвердить что ты не робот

Настройка проверки javax Swagger Ограничения на DTO

Я использую Swagger (1.5.8). Я хочу, чтобы определение swagger.json обнаруживало аннотации javax.validation JSR-303 для моих DTO, чтобы я мог документировать мои ограничения проверки API.

Я ожидаю, что аннотация @Min (как этот пример) будет показывать что-то о минимальном значении (44), но это не так.

@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;
}

Требуемый/ожидаемый swagger.json Выход:

"FooDTO": {
  "type": "object",
  "required": [
    "myInt"
  ],
  "properties": {
    "myInt": {
      "type": "number",
      "format": "integer",
      "minimum": "1",
      "maximum": "100",
 ...

Какой предпочтительный способ настроить модули Swagger/плагины для включения таких функций, как ModelResolver и BeanValidator, чтобы они проверили аннотации на моих DTO?

4b9b3361