如何将 openapi.yaml 规范公开到其余的 Spring Boot 中

Bed*_*ouk 0 spring swagger openapi springdoc

我已经在外部安装了 swagger-ui,我只想将 swagger-ui (开源)实例从 openapi.yaml 连接到 localhost:8000/doc/api (.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();
    }
Run Code Online (Sandbox Code Playgroud)

但我没有发现任何有用的东西。谢谢。

    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>
Run Code Online (Sandbox Code Playgroud)

bri*_*bro 6

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

\n

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

\n

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

\n

第二个配置:带有静态文件的内部 OPENAPI 定义

\n

如果您想使用包含 openAPI 定义的静态文件,则只需声明: 文件名可以是您想要的任何名称,从您的声明与 yaml 或 json OpenAPI Spec 一致的那一刻起。

\n
springdoc.swagger-ui.url=/openapi.yaml\n
Run Code Online (Sandbox Code Playgroud)\n

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

\n