小编Pre*_*mer的帖子

无法为 Scala 中的枚举列表生成正确的招摇

在我们的 scala 应用程序中为枚举列表生成 swagger 文档时,生成的 swagger 定义只是空对象。为枚举生成 swagger 文档时,一切都按预期进行,仅在处理枚举列表时才如此。

在 scala 中有多种创建枚举的方式,我们的代码库使用这种方式:

sealed trait AnswerEnum { val value: String }
case object YES extends AnswerEnum { val value = "YES" }
case object NO extends AnswerEnum { val value = "NO" }
Run Code Online (Sandbox Code Playgroud)

假设我们有一个 API,它只有一个端点,预期请求看起来像这样:

case class SomeRequest(answers: Seq[AnswerEnum])
Run Code Online (Sandbox Code Playgroud)

我们想要产生一些招摇,所以我们注释它,它看起来像这样:

@ApiModel(description = "Example Request")
case class SomeRequest(
    @ApiModelProperty(value = "List of answers", required = true) answers: Seq[AnswerEnum]
)
Run Code Online (Sandbox Code Playgroud)

然后在我们的 swagger 中留下一个定义,如下所示:

"AnswerEnum": {
    "type": "object"
}
Run Code Online (Sandbox Code Playgroud)

虽然我们希望得到的是这样的:

"AnswerEnum": {
    "type": "string", …
Run Code Online (Sandbox Code Playgroud)

enums scala traits swagger swagger-codegen

5
推荐指数
0
解决办法
345
查看次数

标签 统计

enums ×1

scala ×1

swagger ×1

swagger-codegen ×1

traits ×1