- 关于过滤的东西我们全部讲完了,今天主要来讲下分组。
- 当项目过去庞大时,一个组可能不能满足我们的需求。
- 我们需要对项目的不同功能进行分组,方便查看和区分。
-
首先我们看下,默认的有哪些分组?启动项目。
-
默认只有一个分组default,默认分组。
-
源码如下:
-
public Docket groupName(String groupName) { this.groupName = defaultIfAbsent(groupName, this.groupName); return this; } 复制代码
-
-
那么this.groupName的值呢?
-
由此可以得出,当我们不设定groupName()时,会有且只有一个默认分组。
-
自定义分组名称
-
@Bean public Docket docket(){ return new Docket(documentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName("group1") .enable(swaggerModel.isEnable()) .select() .paths(PathSelectors.any()) .build(); } 复制代码
-
-
再次启动项目看看
-
ok!没问题了,成功设定了分组!
-
那么,如果我们有多个分组该怎么办呢?
-
前面的文章就讲到了,我们是使用Docket来控制Swagger的配置的。
-
只需要设定多个Docket即可。
-
代码如下:
-
@Bean public Docket docket1(){ return new Docket(documentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName("group1") .enable(swaggerModel.isEnable()) .select() .paths(PathSelectors.any()) .build(); } @Bean public Docket docket2(){ return new Docket(documentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName("group2") .enable(swaggerModel.isEnable()) .select() .paths(PathSelectors.any()) .build(); } @Bean public Docket docket3(){ return new Docket(documentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName("group3") .enable(swaggerModel.isEnable()) .select() .paths(PathSelectors.any()) .build(); } 复制代码 -
再次重启项目
-
nice!多个分组设置成功!
-
- 如果是在实际项目开发中呢?
- 因为有多个Docket,每个Docket都可以设置一个分组,当然也可以设定每个Docket的单独过滤规则
- 这样就完美设置成了一个大的功能模块对应一个分组。
- 方便前端根据功能来查找对应的接口信息。
- 为什么要这样?
- 因为项目大了之后可能有几百上千个接口。如果全在一个组内,找起来特别麻烦!
- 而groupName()可以很方便的帮我们规避掉这个问题!
- 以上都是个人所言,如有不对,欢迎指出。
链接:https://juejin.cn/post/7034136133449547784



