如何将 openapi.yaml 规范公开到 rest spring 引导

how to expose an openapi.yaml specification into rest spring boot

我已经在外部安装了 swagger-ui,我只是想将那个 swagger-ui(开源)实例连接到 localhost:8000/doc/api (. yaml) 来自 openapi.yaml 。有什么想法吗? PS:我尝试使用

 @Bean
public OpenAPI customOpenAPI() {
    return new OpenAPI()
            .components(new Components().addSecuritySchemes("basicScheme",
                    new SecurityScheme().type(SecurityScheme.Type.HTTP).scheme("basic")))
            .info(new Info().title("SpringShop API").version("0.1")
                    .license(new License().name("Apache 2.0").url("http://springdoc.org")))
            .externalDocs(new ExternalDocumentation()
                    .url("restapi/doc/openapi.yaml"));
}

    @Bean
    public SpringDocConfiguration springDocConfiguration(){
        return new SpringDocConfiguration();
    }
    @Bean
    public SpringDocConfigProperties springDocConfigProperties() {
        return new SpringDocConfigProperties();
    }

但我没有找到任何有用的东西。谢谢。

    application.properties:
    springdoc.api-docs.enabled=false
springdoc.swagger-ui.url=openapi.yaml
springdoc.swagger-ui.path=/doc/api/ui.html

dependecies:
<dependency>
        <groupId>org.springdoc</groupId>
        <artifactId>springdoc-openapi-ui</artifactId>
        <version>1.4.4</version>
    </dependency>

第一个配置:外部​​ OPENAPI 定义

属性springdoc.swagger-ui.urls.*,适合配置外部url(http://myhoost.com/v3/api-docs)

例如,如果您想要在一个应用程序中整合其他服务的所有端点。不要忘记还需要启用 CORS。

第二种配置:使用静态文件的内部 OPENAPI 定义

如果你想使用包含你的 openAPI 定义的静态文件,那么只需声明:文件名可以是任何你想要的,从你的声明与 json OpenAPI 规范一致的那一刻起。 =12=]

springdoc.swagger-ui.url=/openapi.yaml

那么文件 openapi.yaml 应该位于:src/main/resources/static 不需要额外的配置。