Openapi swagger 文档生成引用
Openapi swagger documentation generates references
我在带注释的对象中有几个枚举,例如:
@Schema(description = "Request description")
case class Request(
@Schema(description = "Enum1 description")
field2: Enum1,
@Schema(description = "Enum2 description")
field2: Enum2
)
枚举定义为:
sealed trait Enum1 extends EnumEntry
object Enum1 extends Enum[Enum1] {
case object Value1 extends Enum1
case object Value2 extends Enum1
}
sealed trait Enum2 extends EnumEntry
object Enum2 extends Enum[Enum2] {
case object Value3 extends Enum2
case object Value4 extends Enum2
}
使用 Openapi3,我可以生成 swagger 文档。我的问题是 Enum1
和 Enum2
的翻译不同,如:
"field1":{
"enum":["Value1","Value2"],
"type":"string"
},
"field2":{
"$ref":"#/components/schemas/Enum2"
}
/* ... */
"Enum2":{
"description":"Enum2 description",
"type":"object"
}
我希望 Enum2
的记录与 Enum1
相同,因此使用实际的枚举值。有什么办法可以强制执行此操作,或者对为什么会发生这种情况有任何解释吗?两个枚举和例子基本一样
在我的例子中,我设法通过将 implementation
参数添加到 @Schema
注释来解决它。基于 and this:
@Schema(description = "Request description")
case class Request(
@Schema(
implementation = classOf[Enum1],
description = "Enum1 description"
)
field1: Enum1,
)
我在带注释的对象中有几个枚举,例如:
@Schema(description = "Request description")
case class Request(
@Schema(description = "Enum1 description")
field2: Enum1,
@Schema(description = "Enum2 description")
field2: Enum2
)
枚举定义为:
sealed trait Enum1 extends EnumEntry
object Enum1 extends Enum[Enum1] {
case object Value1 extends Enum1
case object Value2 extends Enum1
}
sealed trait Enum2 extends EnumEntry
object Enum2 extends Enum[Enum2] {
case object Value3 extends Enum2
case object Value4 extends Enum2
}
使用 Openapi3,我可以生成 swagger 文档。我的问题是 Enum1
和 Enum2
的翻译不同,如:
"field1":{
"enum":["Value1","Value2"],
"type":"string"
},
"field2":{
"$ref":"#/components/schemas/Enum2"
}
/* ... */
"Enum2":{
"description":"Enum2 description",
"type":"object"
}
我希望 Enum2
的记录与 Enum1
相同,因此使用实际的枚举值。有什么办法可以强制执行此操作,或者对为什么会发生这种情况有任何解释吗?两个枚举和例子基本一样
在我的例子中,我设法通过将 implementation
参数添加到 @Schema
注释来解决它。基于
@Schema(description = "Request description")
case class Request(
@Schema(
implementation = classOf[Enum1],
description = "Enum1 description"
)
field1: Enum1,
)