我在一個帶注釋的物件中有幾個列舉,例如:
@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 檔案。我的問題是 sayEnum1和Enum2的翻譯不同,如:
"field1":{
"enum":["Value1","Value2"],
"type":"string"
},
"field2":{
"$ref":"#/components/schemas/Enum2"
}
/* ... */
"Enum2":{
"description":"Enum2 description",
"type":"object"
}
我想Enum2記錄與 , 相同Enum1的實際列舉值。有什么方法可以強制執行此操作,或者對為什么會發生這種情況有任何解釋?兩個列舉與示例中基本相同。
uj5u.com熱心網友回復:
就我而言,我設法通過將implementation引數添加到@Schema注釋中來解決它。基于這個和這個:
@Schema(description = "Request description")
case class Request(
@Schema(
implementation = classOf[Enum1],
description = "Enum1 description"
)
field1: Enum1,
)
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/358571.html
