#java #openapi #swagger-3.0
#java #openapi #swagger-3.0
Вопрос:
У меня есть эта аннотация open API
@GET
@Operation(method = "Get orders", description = "GetOrdersRoute",
parameters = {
@Parameter(in = ParameterIn.QUERY, name = "batchSize", required = true,
schema = @Schema(type = "")),
@Parameter(in = ParameterIn.QUERY, name = "fromDate", required = true),
@Parameter(in = ParameterIn.QUERY, name = "filter", required = true)},
responses = {
@ApiResponse(description = "The order",
content = @Content(mediaType = "application/json",
schema = @Schema(implementation = OrderDto.class)))})
@Override
public String handle(@Parameter(hidden = true) Request request, @Parameter(hidden = true) Response response) {
return api.exec();
}
Это работает. Но когда я добавляю @Parameter
к @Schema
любому значению, например schema = @Schema(type = "integer"))
, я получаю исключение:
java.lang.NoSuchMethodError: org.apache.commons.lang3.math.NumberUtils.isCreatable(Ljava/lang/String;)Z
Другими словами: @Schema(type = ""))
работает нормально, но @Schema(type = "integer"))
не работает.
И не только type
параметр в @Schema
аннотации. Любой переопределяющий параметр в @Schema
аннотации вызывает это исключение.
Но @Schema
in @ApiResponse
отлично работает с любым переопределяющим параметром.
Ответ №1:
Сегодня я столкнулся с той же проблемой при использовании
@ApiResponse(
responseCode = "200",
content = @Content(mediaType = "application/json", schema = @Schema(implementation = MyDto.class)),
description = "Returns MyDto.")
с io.swagger.v3.oas.annotations.media.Schema
помощью from swagger 2.1.9
.
После попытки использования разных версий swagger (которые приводили к другим ошибкам в моей настройке), он работал при понижении до swagger 2.0.10
.