当前位置: 首页 > 知识库问答 >
问题:

Openapi swagger 文档生成引用

宗政权
2023-03-14

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

@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"
}

我希望< code>Enum2与< code>Enum1一样被记录,因此具有实际的枚举值。有什么方法可以强制这样做,或者解释为什么会这样?两个枚举基本上与示例中的相同。

共有1个答案

陈渊
2023-03-14

在我的情况下,我设法通过将实现参数添加到@Schema注释中来解决它。基于这个和这个:

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

 类似资料:
  • https://github.com/estan/protoc-gen-doc 这是一个Google Protocol Buffers编译器(protoc)的文档生成插件。这个插件可以从.proto文件中的注释内容生成HTML, DocBook 或者 Markdown 文档。 安装 参考 protoc-gen-doc Installation章节的信息。 linux安装 对于ubuntu系统,参考

  • easyopen提供一个简单的api文档查看页面,类似于swagger,基于注解功能来生成文档页面。生成的文档页面可以查看参数、结果说明,也可以进行模拟请求。对于前后端分离的项目来说会很有帮助。文档界面如下图所示: 左边的树形菜单对应文档名称,点击树可前往查看对应的接口说明。点击请求按钮可以发起请求进行测试。可修改业务参数中的值进行测试。 下面来讲解文档注解的使用方法。 文档页面默认是关闭的,需要

  • CabalPHP 支持接口文档自动生成。 编写好相关配置和文档注释后浏览器访问 http://127.0.0.1:9501/__docs 即可查看相关文档,注意检查自己的监听端口和IP。 点击这里访问示例文档 接口文档地址只能在debug环境(cabal.debug配置为true)下访问。 配置 文档相关配置在 conf/cabal.php // ... 'document' =

  • 支持在项目中使用 Swagger 注解语法,运行命令,生成 Swagger 文件。 Swagger 是最流行的 API 开发工具,它遵循 OpenAPI Specification(OpenAPI 规范,也简称 OAS)。 Swagger 可以贯穿于整个 API 生态,如 API 的设计、编写 API 文档、测试和部署。 Swagger 是一种通用的,和编程语言无关的 API 描述规范。 imi-

  • Django的admindocs应用从模型、视图、模板标签以及模板过滤器中,为任何INSTALLED_APPS中的应用获取文档。并且让文档可以在Django admin中使用。 在某种程度上,你可以使用admindocs来快为你自己的代码生成文档。这个应用的功能十分有限,然而它主要用于文档模板、模板标签和过滤器。例如,需要参数的模型方法在文档中会有意地忽略,因为它们不能从模板中调用。这个应用仍旧有

  • 原有插件生成的 HTML 文件内容和格式并不理想,考虑自行调整。 因此 fork 了原有仓库,准备动手修改。 这样就有必要能自己从c的源代码开始编译打包。 参考原有的插件打包说明: https://github.com/skyao/protoc-gen-doc/blob/master/BUILDING.md 准备工作 按照要求,需要准备两个东西: Protocol Buffers library