在我们的 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)