Для нашего проекта мы используем swagger.version-> 1.5.16 и swagger-maven-plugin (3.1.5) для создания документации swagger для нашего общедоступного REST API (написанного в аннотациях java + swagger)
Проблема в том, что в сгенерированной документации есть перечисленные типы, которые не имеют ничего общего с публичным API - ни один из методов API не использует их в качестве параметров или в качестве возвращаемых типов.
Почему это может произойти и как мы можем предотвратить это? (Есть ли какие-либо журналы отладки при создании документа swagger, чтобы помочь определить причину?)
Заранее спасибо!
Пример:
public class Vehicle {
public StrangeObject strangeMethod() {
return null;
}
public class StrangeObject<T> {}
}
и велосипед:
import javax.ws.rs.DELETE;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
@Path("/bikes")
@Api
public class Bike extends Vehicle {
@DELETE
@Path("/book")
@Produces({ "application/json" })
@ApiOperation(nickname = "bookBike",
value = "Book a Bike",
code = 200,
response = Boolean.class)
@ApiResponses(
value = {
@ApiResponse(code = 403, message = "Forbidden"),
@ApiResponse(code = 404, message = "Not Found")
})
public Boolean handleBook(
@PathParam("id") @ApiParam(value = "The ID of the bike.") String id) {
return Boolean.TRUE;
}
}
StrangeObject появляется в документе «Определения», и это то, что я хочу исправить.
ПРИМЕЧАНИЕ : Предположим, что у меня нет доступа к автомобилю, он поступил из внешней библиотеки.