【问题标题】:Openapi swagger documentation generates referencesOpenapi swagger 文档生成引用
【发布时间】:2021-11-10 12:18:40
【问题描述】:

我在带注释的对象中有几个枚举,例如:

@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 文档。我的问题是 Enum1Enum2 的翻译方式不同,如:

"field1":{
    "enum":["Value1","Value2"],
    "type":"string"
},

"field2":{
  "$ref":"#/components/schemas/Enum2"
}

/* ... */

"Enum2":{
  "description":"Enum2 description",
  "type":"object"
}

我希望 Enum2 的文档记录与 Enum1 相同,因此使用实际的枚举值。有什么办法可以强制这样做,或者有什么解释为什么会发生这种情况?两个枚举与示例中的基本相同。

【问题讨论】:

  • 您使用哪个库来生成 OpenAPI?通过在他们的 GitHub/Slack 上打开问题/问题,您可能会获得更多反馈。

标签: scala swagger openapi swagger-codegen openapi-generator


【解决方案1】:

就我而言,我设法通过将 implementation 参数添加到 @Schema 注释来解决它。基于thisthis

@Schema(description = "Request description")
case class Request(
   @Schema(
     implementation = classOf[Enum1],
     description = "Enum1 description"
   )
   field1: Enum1,
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多