2

我有 spring-mvc 应用程序,并且我已经嵌入了 RestAPI。一切正常,我的 rest api 映射在/rest/*url 上。当我添加 SwaggerConfig 时,它已经开始识别我的控制器,但是当我在 swagger-ui 中尝试它时(用于简化消费者与 api 交互的 gui 形式) 在此处输入图像描述

我有 404 not found 状态。因为这在 在此处输入图像描述 这个没有对有效网址的请求上进行了尝试

http://localhost:8080/ProductCatalog/rest/branch?id=1

虽然 SwaggerConfig 映射到正确的 url,因为我在写的时候有这个 GUI 表示

http://localhost:8080/ProductCatalog/rest/swagger-ui.html

根 url 上有一个应用程序的主要部分(这不是我工作的部分)我的部分映射到/rest/* 我如何也可以更改这个“试用”url /rest/*?我的 Swagger 配置

@Configuration
@EnableSwagger2
public class SwaggerConfig {

    @Bean
    public Docket pscApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                //.groupName("PSC");
                .apiInfo(apiInfo())
                .select()
                .apis(RequestHandlerSelectors.basePackage("restService.com.websystique.springmvc"))
                .paths(PathSelectors.any())
                .build();
        //PathSelectors.regex("/api/.*")
    }

    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                .title("RestApiOfPSC")
                .description("REST API for PSC.")
                .build();
    }
}

我也指定了这个

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

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

对不起我的英语不好,提前谢谢

4

1 回答 1

5

我有办法做到这一点。

docket.pathMapping("/rest");

有时您需要在 Docket bean 中以另一种方式更改它,docket.host("your host url"); 更准确地阅读我的问题 https://github.com/springfox/springfox/issues/1468

并浏览参考#issue1050。

于 2016-08-26T07:05:10.107 回答