Boot版本的swagger,如何修改和cloud版一样可以分模块展示。

Blade 未结 1 2236
dkyi
dkyi 2019-07-02 16:07

image.png如题,因为我boot版也想要分模块开发。但是这个如何在上面default里面体现出来。

分组显示

1条回答
  •  dkyi
    dkyi (楼主)
    2019-07-03 08:56

    最终效果图:

    2个模块demo demo2对应在swaggerui上有2个不同的分组信息

    image.pngimage.png


    代码实现方式:

    package org.springblade.common.config;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.ApiInfoBuilder;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.service.ApiInfo;
    import springfox.documentation.service.Contact;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    /**
     * 功能描述:SwaggerConfig 分组配置
     * @author
     * @date 2019年7月3日08:40:41
     */
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    /**
     * 创建API应用
     * apiInfo() 增加API相关信息
     * 通过select()函数返回一个ApiSelectorBuilder实例,用来控制哪些接口暴露给Swagger来展现,
     * 本例采用指定扫描的包路径来定义指定要建立API的目录。
     *
     * @return
     */
    @Bean
    public Docket restApi() {
    return new Docket(DocumentationType.SWAGGER_2)
    .groupName("分组-DEMO-1")
    .apiInfo(apiInfo("分组-DEMO-1", "1.0"))
    .useDefaultResponseMessages(true)
    .forCodeGeneration(false)
    .select()
    //这个配置是用来指定我们的接口层的位置,大家可以根据你自己项目的实际情况来进行修改
    .apis(RequestHandlerSelectors.basePackage("org.springblade.demo.controller"))
    .paths(PathSelectors.any())
    .build();
    }
    @Bean
    public Docket restApi2() {
    return new Docket(DocumentationType.SWAGGER_2)
    .groupName("分组-DEMO-2")
    .apiInfo(apiInfo("分组-DEMO-2", "1.0"))
    .useDefaultResponseMessages(true)
    .forCodeGeneration(false)
    .select()
    .apis(RequestHandlerSelectors.basePackage("org.springblade.demo2.controller"))
    .paths(PathSelectors.any())
    .build();
    }
    /**
     * 创建该API的基本信息(这些基本信息会展现在文档页面中)
     * @return
     */
    private ApiInfo apiInfo(String title, String version) {
    return new ApiInfoBuilder()
    .title(title)
    .description("自定义分组接口")
    .termsOfServiceUrl("服务URL")
    .contact(new Contact("DKYI", "localhost:3807/服务/", "@163.com"))
    .version(version)
    .build();
    }
    }



    0 讨论(0)
提交回复