Fri*_*ido 12 java annotations kotlin swagger
如何将以下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 = "...") })
Run Code Online (Sandbox Code Playgroud)
这不起作用:
@ApiResponses(value = listOf(
ApiResponse(code = 200, message = "..."),
ApiResponse(code = 404, message = "..."),
ApiResponse(code = 500, message = "..."),
ApiResponse(code = 400, message = "..."),
ApiResponse(code = 412, message = "...") ))
Run Code Online (Sandbox Code Playgroud)
错误是:
类型推断失败.预期类型不匹配:推断类型为List但预期ApiResponse
它只使用一个@ApiResponse
而不是listOf()
,但我必须定义更多@ApiResponse(s)
.
我使用Swagger 2.5.0
Rob*_*bin 15
如果Java中的[Annotation]的value参数具有数组类型,则它将成为Kotlin中的vararg参数
所以,为了使你的例子有效,你需要像这样:
@ApiResponses(
ApiResponse(code = 200, message = "..."),
ApiResponse(code = 404, message = "..."),
ApiResponse(code = 500, message = "..."),
ApiResponse(code = 400, message = "..."),
ApiResponse(code = 412, message = "...")
)
Run Code Online (Sandbox Code Playgroud)
Sam*_*ada 11
对于 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()])]
)
Run Code Online (Sandbox Code Playgroud)
此代码片段还包括@Content
、@ArraySchema
和@Schema
注释示例。
归档时间: |
|
查看次数: |
1616 次 |
最近记录: |