使用springfox Swagger自定义dockets的端点

sal*_*dou 8 rest swagger springfox

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

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

  • 本地主机:8080/V1 /订阅/ DOC

  • 本地主机:8080/V1 /桶/ DOC

我发现只有一种方法可以为我的数据库设置不同的端点,但是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();
}
}
Run Code Online (Sandbox Code Playgroud)

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

springfox.documentation.swagger.v2.path: "/doc"
Run Code Online (Sandbox Code Playgroud)

你知道一种按我想要的方式定义端点的方法吗?

提前致谢

sal*_*dou 5

我已经找到答案了!

@Configuration
@EnableWebMvc
public class WebConfig extends WebMvcConfigurerAdapter {


@Override
public void addViewControllers(ViewControllerRegistry registry) {

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


}
}
Run Code Online (Sandbox Code Playgroud)