【问题标题】:Unable to get swagger UI screen in spring boot project?在 Spring Boot 项目中无法获得招摇的 UI 屏幕?
【发布时间】:2020-12-12 17:55:59
【问题描述】:

我配置了swagger UI,但看不到屏幕,出现404错误,谁能告诉我如何解决问题?

maven 依赖的

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>

SwaggerConfig 文件

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket apiDocket() {
        return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any())
                .paths(PathSelectors.any()).build();
    }

}

错误图像屏幕

【问题讨论】:

    标签: spring-boot swagger springfox


    【解决方案1】:

    试试这个配置

    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.*;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spi.service.contexts.SecurityContext;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    import java.util.Arrays;
    import java.util.Collections;
    import java.util.List;
    
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    
        public static final String SWAGGER_SCAN_BASE_PACKAGE = "notificationservice.web";
    
        @Bean
        public Docket api() {
            Docket docket =  new Docket(DocumentationType.SWAGGER_2)
                    .select()
                    .apis(RequestHandlerSelectors.basePackage(SWAGGER_SCAN_BASE_PACKAGE))
                    .paths(PathSelectors.any())
                    .build().apiInfo(apiInfo())
                    .securitySchemes(Arrays.asList(apiKey()))
                    .securityContexts(Collections.singletonList(securityContext()));
            return docket;
        }
    
        public ApiInfo apiInfo() {
            return new ApiInfoBuilder()
                    .title("Notification Service API")
                    .description("Notification Service API Documentation")
                    .license("Aapche 2.0")
                    .licenseUrl("https://github.com/dvsigh9/licence")
                    .build();
        }
    
        private SecurityContext securityContext() {
            return SecurityContext.builder().securityReferences(defaultAuth()).forPaths(PathSelectors.regex("/.*")).build();
        }
    
        private List<SecurityReference> defaultAuth() {
            final AuthorizationScope authorizationScope = new AuthorizationScope("global", "accessEverything");
            final AuthorizationScope[] authorizationScopes = new AuthorizationScope[]{authorizationScope};
            return Collections.singletonList(new SecurityReference("Bearer Token", authorizationScopes));
        }
    
        private ApiKey apiKey() {
            return new ApiKey("Bearer Token", "Authorization", "header");
        }
    
    }
    

    【讨论】:

    • 相同的配置但不适合我
    【解决方案2】:

    swagger 版本 3.0.0 已将 url 更改为 /上下文路径/swagger-ui/ 或 /context-path/swagger-ui/index.html

    这记录在 swagger-ui github 上 https://springfox.github.io/springfox/docs/snapshot/#migrating-from-existing-2-x-version

    【讨论】:

      【解决方案3】:

      你只需要添加这个依赖,并且删除 @EnableSwagger2,在检查它之后 url ../swagger-ui/index.html

         <dependency>
              <groupId>io.springfox</groupId>
              <artifactId>springfox-boot-starter</artifactId>
              <version>3.0.0</version>
          </dependency>
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-06
        • 2015-12-03
        • 2020-07-02
        • 1970-01-01
        • 2018-09-11
        • 1970-01-01
        • 1970-01-01
        • 2017-08-21
        相关资源
        最近更新 更多