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

问题描述

我已经在外部安装了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();
    }

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

    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定义的静态文件,则只需声明:从声明一致的yaml或json OpenAPI Spec开始,文件名就可以是您想要的任何文件。

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

然后,文件openapi.yaml应该位于:src / main / resources / static不需要其他配置。