显式定义要在 swagger-ui 上呈现的组

问题描述 投票:0回答:1

我正在开发一个具有以下依赖项的 Spring Boot 3.1.4 (java 17) 项目:

<dependency>
      <groupId>org.springdoc</groupId>
      <artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
      <version>2.2.0</version>
</dependency>

我通过配置文件创建 OpenAPI 定义和 5 个 GroupedOpenApi beans。我还使用一些注释来通过操作和模式来丰富我的 OpenAPI。

我使用 Redoc(静态 html 模板)和 Swagger UI(来自上面的依赖项)。 Redoc 供公共/外部使用,Swagger UI 供内部使用。

到目前为止一切顺利,特别是对于 Redoc,因为我每个组都有一个单独的 html 模板。

我想要的是仅渲染 Swagger UI 下拉列表中 5 个 GroupedOpenApi 定义的 bean 中的 3 个。我无法删除或设置其他 2 个条件,因为它们是从 Redoc 使用的。

我尝试了以下方法:

  1. 要使用
    springdoc.api-docs.groups.enabled
    属性禁用所有 GroupedOpenApi,但经过一番调查后该属性不再存在 -> 提出了 文档问题
  2. 显式定义
    springdoc.swagger-ui.urls[]
    但它会附加而不是覆盖
  3. 在服务器启动时(应用程序构建后)并使用请求过滤器(在 http 请求到 /swagger-ui/index.html 之前和之后)手动设置
    urls
    中的
    AbstractSwaggerUiConfigProperties
    ,但它仍然呈现所有 5 个分组 OpenApi

提前致谢

swagger-ui springdoc
1个回答
0
投票

我通过创建一个简单的

swagger-config.json
解决了这个问题,其中仅包含我想要的
swagger-ui.urls[]
并在
application.yml
属性
springdoc.swagger-ui.configUrl
中配置以指向我的文件

© www.soinside.com 2019 - 2024. All rights reserved.