Я использую 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?