swagger-2.0 - @ApiParam 类型不支持字符串以外的类型

标签 swagger-2.0

@GetMapping(value = "/result")
    public int addition(
                    @ApiParam(value = "FirstValue", required = true, type = "string", defaultValue = "0") @RequestParam(value = "firstValue", required = true) Integer x,
                    @ApiParam(value = "SecondValue", required = true, type = "string", defaultValue = "0") @RequestParam(value = "secondValue", required = true) Integer y) {

        return x + y;
    }

在刷新 swagger UI 页面时,我们收到以下错误
2019-06-26 15:44:11.484  WARN 16667 --- [nio-7854-exec-3] i.s.m.p.AbstractSerializableParameter    : Illegal DefaultValue 0 for parameter type integer

java.lang.NumberFormatException: For input string: ""
    at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) ~[na:1.8.0_144]
    at java.lang.Long.parseLong(Long.java:601) ~[na:1.8.0_144]
    at java.lang.Long.valueOf(Long.java:803) ~[na:1.8.0_144]
    at io.swagger.models.parameters.AbstractSerializableParameter.getExample(AbstractSerializableParameter.java:412) ~[swagger-models-1.5.20.jar:1.5.20]
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_144]
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_144]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_144]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_144]

最佳答案

这不是错误,只是严重性警告的日志,可以通过使用忽略

logging.level.io.swagger.models.parameters.AbstractSerializableParameter=error

在 application.properties 上。根据我自己的经验,他不会为整数设置值 0(我认为这是因为这是 int 类型的默认值)。

关于显示为 ref 的类型,这是因为 integer 不是接受的值之一。对于 java.lang.Integer 或原始 int,您应该在 swagger 中使用类型“int”。我使用的其他值是:“long”(对于 java.lang.Long 和 long)、“bigInteger”(对于 java.math.BigInteger),当然还有“string”(对于 java.lang.String)。

关于swagger-2.0 - @ApiParam 类型不支持字符串以外的类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56770356/

相关文章:

javascript - 初始化 JS Swagger 客户端时传入身份验证凭据?

asp.net-web-api - 我怎样才能告诉Swashbuckle人体必需的成分?

swagger - "bad indentation of mapping entry"错误在 Swagger Editor 中意味着什么?

swagger - 如何在 SwaggerUIBundle 中设置请求拦截器?

java - 如何记录返回 ResponseEntity<Resource> 的 swagger 规范,其中 Resource 是 org.springframework.core.io.Resource

java - 如何使用 Jersey 和 BeanConfig 更改 swagger 的路径?

swagger - 如何在 Swagger 中描述具有简单对象的数组的模型?

spring-boot - 如何更改 swagger-ui.html 默认路径

java - Swagger 显示 "Found unknown parameters"错误