使用springfox Swagger自定义dockets的端点

时间:2017-05-31 12:51:07

标签: rest swagger springfox

我在互联网上搜索了如何自定义多个网站的端点,但还没有找到答案。

我的模块有几个API。我想在不同的端点上生成Swagger文档,每个端点都位于其相应API的根目录下。例如:

  • 本地主机:8080 / V1 /订阅/文件

  • 本地主机:8080 / V1 /桶/文件

我发现只有一种方法可以为我的数据库设置不同的端点,但是URL与我想要的不一致。他们是:

  • 本地主机:8080 / doc的基团=订阅

  • 本地主机:8080 / doc的基团=桶

这是我的Swagger配置文件

@Configuration
@EnableSwagger2
public class SwaggerConfiguration {

@Value("${info.version}")
private String version;

@Bean
public Docket subscriptionsApi() {
    return new Docket(DocumentationType.SWAGGER_2)
            .groupName("subscriptions")
            .apiInfo(subscriptionsApiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.mymodule"))
            .paths(PathSelectors.ant("/v1/subscriptions/**"))
            .build();
}

@Bean
public Docket bucketsApi() {
    return new Docket(DocumentationType.SWAGGER_2)
            .groupName("buckets")
            .apiInfo(bucketsApiInfo())
            .select()
            .apis(RequestHandlerSelectors.basePackage("com.mymodule"))
            .paths(PathSelectors.ant("/v1/buckets/**"))
            .build();
}

private ApiInfo subscriptionsApiInfo() {
    return new ApiInfoBuilder()
            .title("Subscriptions Api definition")
            .description("Subscriptions Api definition")
            .version(version)
            .build();
}

private ApiInfo bucketsApiInfo() {
    return new ApiInfoBuilder()
            .title("Bucket Api definition")
            .description("Bucket Api definition")
            .version(version)
            .build();
}
}

在我的application.yml文件中,我写道:

springfox.documentation.swagger.v2.path: "/doc"

您是否知道按照我想要的方式定义端点的方法?

提前致谢

1 个答案:

答案 0 :(得分:3)

我找到了答案!

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {


@Override
public void addViewControllers(ViewControllerRegistry registry) {

    registry.addRedirectViewController("/v1/subscriptions/doc", "/doc?group=subscriptions");


}
}