Springfox Swagger-UI - скрытие или фильтрация полей для разных запросов без использования дополнительных моделей - PullRequest
0 голосов
/ 29 мая 2020

Можно ли с помощью Spring Boot и Springfox Swagger 2.9.2 отфильтровать (скрыть) указанные c поля для разных запросов?

Я получил модель «Жанры»:

{
  "id": 0,
  "type": "string"
}

И еще одна «Книга» с включенной первой:

{
  "id": 0,
  "genres": [
    {
      "id": 0,
      "type": "string"
    }
  ],
  "isbn": "string",
  "title": "string",
  "author": "string",
  "publishedYear": "string",
  "price": "string",
  "quantity": 0
}

Я хочу показать все поля для первой модели «Жанры» в Swagger-UI GET /genres, но скрыть "type": "string" для «Книги» модель POST /books, поскольку это не обязательно и в основном дублирует информацию о жанре книги.

Есть ли возможность это сделать? Я не хочу использовать DTO или какие-либо отдельные модели для этого, но, к моему удивлению, похоже, что другого выбора нет, поскольку разработчики Swagger не оставили такой возможности.

Я пробовал:

@ApiModelProperty(readOnly = true)
private String type;

И:

@ApiModelProperty(accessMode = ApiModelProperty.AccessMode.READ_ONLY)
private String type;

Но это не помогло.

@ JsonIgnore скрывает поле для каждого запроса, который не является тем, что я ищу:

@JsonIgnore
private String type;

Я смотрел это и это , но похоже, что решения нет. Я что-то упускаю? Погуглив эту проблему, я обнаружил, что много людей ищут эту функцию годами: (

...