Предположим, что у нас есть следующий метод контроллера:
@ApiResponses(value = {@ApiResponse(responseCode = "200")})
@GetMapping(value = "/animals", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.OK)
public Flux<AnimalResponse> getAnimals() {
return Flux.just(new AnimalResponse(new Dog("animal", "dog")));
}
где AnimalResponse
выглядит так:
class AnimalResponse {
private Animal animal;
}
и Animal
класс является абстрактным классом:
abstract class Animal {
private String animal;
}
, который расширен двумя классами Dog
и Cat
:
class Cat extends Animal {
private String cat;
}
class Dog extends Animal {
private String dog;
}
В конфигурации Swagger по умолчанию он показывает, что ответ контроллера содержит только одно поле animal
, которое принадлежит абстрактному class Animal
и никакой информации о других возможных полях. Мне кажется, мне нужно как-то указать свойство oneOf
Swagger для класса Animal
, но я не знаю, как это сделать правильно, потому что обычно атрибут oneOf
определяется для Response Object
не для встроенного элемента. Итак, не могли бы вы посоветовать?