[英]How to use Swagger @ApiResponses annotation in Kotlin?
如何将以下 Swagger 注释从 Java 转换为 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 = "...") })
这不起作用:
@ApiResponses(value = listOf(
ApiResponse(code = 200, message = "..."),
ApiResponse(code = 404, message = "..."),
ApiResponse(code = 500, message = "..."),
ApiResponse(code = 400, message = "..."),
ApiResponse(code = 412, message = "...") ))
错误是:
类型推断失败。 预期类型不匹配:推断类型为 List 但预期为 ApiResponse
当我只使用一个@ApiResponse
而不是listOf()
时它会起作用,但我必须定义更多@ApiResponse(s)
。
我使用 Swagger 2.5.0
如果 Java 中 [注解] 的值参数具有数组类型,则它成为 Kotlin 中的 vararg 参数
所以,为了让你的例子工作,你需要这样说:
@ApiResponses(
ApiResponse(code = 200, message = "..."),
ApiResponse(code = 404, message = "..."),
ApiResponse(code = 500, message = "..."),
ApiResponse(code = 400, message = "..."),
ApiResponse(code = 412, message = "...")
)
对于 Swagger 3,这是要走的路:
@ApiResponses(value = [
ApiResponse(responseCode = "200", description = "...", content = [
(Content(mediaType = "application/json", array = (
ArraySchema(schema = Schema(implementation = DataModel::class)))))]),
ApiResponse(responseCode = "400", description = "...", content = [Content()]),
ApiResponse(responseCode = "404", description = "...", content = [Content()])]
)
此代码段还包括@Content
、 @ArraySchema
和@Schema
注释示例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.