如何在 openapi 中设置默认 API 定义 url?

Posted

技术标签:

【中文标题】如何在 openapi 中设置默认 API 定义 url?【英文标题】:How set default API definition url in openapi? 【发布时间】:2021-08-12 13:47:02 【问题描述】:

我想通过 url /v3/api-docs/ 设置默认方案,但是有空 url 和错误“没有提供 API 定义。”。 我应该使用哪些设置属性?

项目中的当前代码:

application.properties

springdoc.swagger-ui.disable-swagger-default-url=true
springdoc.swagger-ui.use-root-path=true

SwaggerConfig.java

@Configuration
public class SwaggerConfig 

@Bean
public GroupedOpenApi applicationApi() 
    String packagesToScan[] = "ru.vetrf.ecert.web.application";
    return GroupedOpenApi.builder()
            .group("application")
            .pathsToMatch("/rest-api/application/**")
            .packagesToScan(packagesToScan)
            .build();


@Bean
public OpenAPI eCertOpenAPI() 
    return new OpenAPI()
            .info(new Info().title("ECert API")
                    .description("ECert API")
                    .version("v1.0.0"))
            ;

pom.xml

        <dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.5.9</version>
        </dependency>

【问题讨论】:

你分享的两张截图,你的意思是说,第一张是发生了什么,第二张是你想要的?我对您面临的问题感到有些困惑。 我希望在打开 /swagger-ui/index.html 时默认打开第二个屏幕截图 【参考方案1】:

尝试复制相同但您使用的当前属性集对我来说很好。

希望将以下属性添加到您的 application.properties 应该会有所帮助

springdoc.swagger-ui.configUrl=/v3/api-docs/

【讨论】:

【参考方案2】:

这个属性好像使用了springdoc.swagger-ui.config_url路径:

springdoc.swagger-ui.use-root-path=true

这个属性似乎在说,使用 config_url 路径作为探索字段中的根路径 在 swagger-ui 中。

我在 spring-doc openapi 的演示存储库中找到了解决方案

https://github.com/springdoc/springdoc-openapi-demos/blob/master/springdoc-openapi-spring-boot-2-webmvc/src/main/resources/application.yml

【讨论】:

【参考方案3】:

对于所有升级到 swagger-ui 4.1.3,请检查以下内容:

https://github.com/swagger-api/swagger-ui/releases/tag/v4.1.3

注意:要重新启用从 URL 读取配置参数的功能,请将新的 queryConfigEnabled 核心参数设置为 true。文档中的更多信息。

【讨论】:

以上是关于如何在 openapi 中设置默认 API 定义 url?的主要内容,如果未能解决你的问题,请参考以下文章

Quarkus 应用程序 - 添加基本路径到 OpenAPI 定义

使用默认消息在快速响应中设置自定义状态文本?

如何从 java api 在 keycloak 中设置自定义用户属性

如何在javascript中设置选择2框的默认值

无法在 Web api 配置中设置自定义合同解析器

如何通过默认使用已在数据库中设置的值来防止“未定义索引”? [复制]