如何在spring-mvc中为springfox设置主机url(更准确的是springfox-swagger2)?

时间:2016-08-25 14:09:23

标签: spring rest spring-mvc swagger springfox

我有spring-mvc app并且我已经嵌入了RestAPI。一切正常我的休息api映射到/rest/* url。当我添加SwaggerConfig时,它已经开始识别我的控制器,但是当我用swagger-ui(gui形式来简化消费者与api的交互)时 enter image description here

我找不到404状态。因为这尝试了 enter image description here 这不是对有效网址的请求

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

尽管SwaggerConfig映射到正确的url上,因为我在编写时已经有了这个GUI表示

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

根网址上有app的主要部分(这不是我工作的一部分)我的部分映射到/rest/* 如何在/rest/*上更改此“试用”网址? 我的SwaggerConfig

@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/");
    }

抱歉我的英文不好,并提前致谢

1 个答案:

答案 0 :(得分:3)

我已经知道如何做到这一点。

docket.pathMapping("/rest");

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

并通过引用#issue1050。