Можно ли с помощью 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;
Я смотрел это и это , но похоже, что решения нет. Я что-то упускаю? Погуглив эту проблему, я обнаружил, что много людей ищут эту функцию годами: (