Есть проблема с Swagger-UI и Springboot - PullRequest
0 голосов
/ 19 октября 2018

это конфигурация и используемые мной зависимости:

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

и эта конфигурация:

@Configuration
@EnableSwagger2
public class SwaggerConfig {                                    
    public static final Contact DEFAULT_CONTACT = new Contact(
              "test", "https://www.test.com", "contact@mycode.ma");

          public static final ApiInfo DEFAULT_API_INFO = new ApiInfo(
              "test api", "For signing pdf document", "1.0",
              "urn:tos", DEFAULT_CONTACT, 
              "License", "license 0-1");

          private static final Set<String> DEFAULT_PRODUCES_AND_CONSUMES = 
              new HashSet<String>(Arrays.asList("application/json",
                  "application/xml"));

          @Bean
          public Docket api() {
            return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(DEFAULT_API_INFO)
                .produces(DEFAULT_PRODUCES_AND_CONSUMES)
                .consumes(DEFAULT_PRODUCES_AND_CONSUMES);
          }
}

И когда я использую этот путь: http://localhost:8090/v2/api-docsдает мне JSON.но когда я хочу использовать http://localhost:8090/swagger-ui.html не работает.спасибо за помощь.

1 Ответ

0 голосов
/ 19 октября 2018

Попробуйте расширить WebMvcConfigurationSupport, как показано ниже, и переопределите add ResourceHandlers и должны работать для вас.

@Configuration
@EnableSwagger2
public class SwaggerConfig extends WebMvcConfigurationSupport {

public static final Contact DEFAULT_CONTACT = new Contact("Nagaraja", "", "email-id");

private static final Set<String> DEFAULT_PRODUCES_AND_CONSUMES = new HashSet<>(
        Arrays.asList("application/json"));

@Bean
public Docket productApi() {
    return new Docket(DocumentationType.SWAGGER_2).apiInfo(metaData()).produces(DEFAULT_PRODUCES_AND_CONSUMES)
            .consumes(DEFAULT_PRODUCES_AND_CONSUMES).select()
            .apis(RequestHandlerSelectors.basePackage("controller-package")).paths(PathSelectors.any())
            .build();

}

private ApiInfo metaData() {
    return new ApiInfoBuilder().title("REST API")
            .description("Write description").version("1.0.0")
            .license("Apache License Version 2.0").licenseUrl("https://www.apache.org/licenses/LICENSE-2.0")
            .contact(DEFAULT_CONTACT).build();
}

@Override
protected void addResourceHandlers(ResourceHandlerRegistry registry) {
    registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/");

    registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/");
}

Зависимости Maven:

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger2</artifactId>
        <version>2.8.0</version>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>2.8.0</version>
        <scope>compile</scope>
    </dependency>
...