如何在Swagger-ui的服务器列表中预先选择服务器?

nhn9ugyo  于 2023-10-18  发布在  其他
关注(0)|答案(1)|浏览(92)

当访问swagger-ui页面时,如何在服务器列表中预先选择一个选定的服务器?
我使用Sping Boot 和Springdoc生成swagger-ui。我有以下bean来将服务器列表添加到swagger-ui:

@Bean
public OpenApiCustomiser openApiCustomiser() {
    return openApi -> openApi
            .servers(List.of(
                    new Server()
                            .url(localUrl)
                            .description("localhost"),
                    new Server()
                            .url(dsoUrl)
                            .description("DSO"),
                    new Server()
                            .url(iftUrl)
                            .description("IFT"),
                    new Server()
                            .url(prodUrl)
                            .description("PROD")));
}

在所有环境主机上,它将默认从localhost选项启动:

我希望在每一个环境主机的swagger-ui显示正确的网址预选。有可能吗?(在不同的环境主机上使用不同的列表排序的解决方案对我来说并不有趣,我希望列表在所有env上保持一个顺序)。

bxjv4tth

bxjv4tth1#

您可以尝试替换localUrl变量,并使用swagger open API生成的变量。

@Bean
public OpenApiCustomiser openApiCustomiser() {
    Server generatedServer = openApi.getServers().get(0);
    return openApi -> openApi
        .servers(List.of(
                new Server()
                        .url(generatedServer.getUrl())
                        .description("Generated URL"),
                new Server()
                        .url(dsoUrl)
                        .description("DSO"),
                new Server()
                        .url(iftUrl)
                        .description("IFT"),
                new Server()
                        .url(prodUrl)
                        .description("PROD")));
}

你可以做的另一件事是让你的服务器列表来自你的属性文件。

相关问题