Frido :
How to convert the following Swagger annotations from Java to Kotlin?
@ApiResponses(value = { @ApiResponse(code = 200, message = "Given admin user found"),
@ApiResponse(code = 404, message = "..."),
@ApiResponse(code = 500, message = "..."),
@ApiResponse(code = 400, message = "..."),
@ApiResponse(code = 412, message = "...") })
This does not works:
@ApiResponses(value = listOf(
ApiResponse(code = 200, message = "..."),
ApiResponse(code = 404, message = "..."),
ApiResponse(code = 500, message = "..."),
ApiResponse(code = 400, message = "..."),
ApiResponse(code = 412, message = "...") ))
The error is:
Type inference failed. Expected type mismatch: inferred type is List but ApiResponse was expected
It works when I use just one @ApiResponse
instead of listOf()
, but I have to define more @ApiResponse(s)
.
I use Swagger 2.5.0
Robin :
As stated in the Kotlin Language Reference:
If the value argument [of an Annotation] in Java has an array type, it becomes a vararg parameter in Kotlin
So, to make your example work, you need to put it like so:
@ApiResponses(
ApiResponse(code = 200, message = "..."),
ApiResponse(code = 404, message = "..."),
ApiResponse(code = 500, message = "..."),
ApiResponse(code = 400, message = "..."),
ApiResponse(code = 412, message = "...")
)
Guess you like
Origin http://10.200.1.11:23101/article/api/json?id=434074&siteId=1