Я использую Springfox версии 2.9.2 и аннотации Swagger 1.5.x.Аннотации ApiModel поддерживают дискриминатор, subTypes и родительский атрибут, необходимые для работы полиморфизма, но я не вижу правильных apidocs, сгенерированных для включения полиморфизма.
Вот мой аннотированный код.
@RestController
@RequestMapping("/api/vehicles")
public class VehicleController {
private static final Logger LOGGER = LoggerFactory.getLogger(VehicleController.class);
@PostMapping(consumes = {MediaType.APPLICATION_JSON_UTF8_VALUE})
void post(@RequestBody Vehicle anyVehicle) {
LOGGER.info("Vehicle : {}", anyVehicle);
}
}
@ApiModel(discriminator = "type", subTypes = {Car.class, Bike.class})
public class Vehicle {
String brand;
String type;
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
@ApiModel(parent = Vehicle.class)
public class Car extends Vehicle {
int noOfDoors;
boolean powerWindows;
public int getNoOfDoors() {
return noOfDoors;
}
public void setNoOfDoors(int noOfDoors) {
this.noOfDoors = noOfDoors;
}
public boolean isPowerWindows() {
return powerWindows;
}
public void setPowerWindows(boolean powerWindows) {
this.powerWindows = powerWindows;
}
}
@ApiModel(parent = Vehicle.class)
public class Bike extends Vehicle {
boolean pillion;
public boolean isPillion() {
return pillion;
}
public void setPillion(boolean pillion) {
this.pillion = pillion;
}
}
Когда генерируемые документы в основном показывают одну конечную точку, которая обрабатывает запрос POST и принимает в качестве модели автомобиль.
Должно ли то, что я здесь делаю, работать?Может кто-нибудь указать мне рабочий пример этого с SpringFox, на который я могу посмотреть?