我有这个开放的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"))
不工作。
不仅@Schema
注解中的type
参数。@Schema
注解中的任何重写参数都会抛出此异常。
但是@ApiResponse
中的@Schema
可以很好地使用任何覆盖参数。
1条答案
按热度按时间ars1skjm1#
我今天在使用时遇到了同样的问题
其中
io.swagger.v3.oas.annotations.media.Schema
来自swagger 2.1.9
。在尝试了不同的swagger版本(在我的设置中产生了其他错误)后,它在降级到
swagger 2.0.10
时工作正常。