可以看到分组的描述信息已经显示出来了。
配置扫描范围
当我们多个人同时开发一个程序时,就会使用多个分组,每个人对应这一个分组,其中每个分组都有自己的接口文档,这里需要配置分组接口显示
例:张涵哲负责开发用户相关的接口 包位置:club.hanzhe.controller.user.UserController.java
@Bean public Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .groupName("张涵哲的分组") .apiInfo(apiInfo()) // select开始,build结束,apis用来过滤 .select() .apis(RequestHandlerSelectors.basePackage("club.hanzhe.controller.user")) .build(); }这样一来该分组下就只会显示固定的接口信息了,除开通过包扫描的方法之外还有其他的方法进行筛选:
RequestHandlerSelectors 类中其他的静态函数:
函数名 作用any() 扫描全部接口
none() 不扫描
basePackage(String package) 根据给定的包的位置进行扫描
withClassAnnotation(Class annotation) 类上有对应注解会被扫描
withMethodAnnotation(Class annotation) 函数上有对应注解的会被扫描
还可以通过路径进行过滤:
@Bean public Docket docket() { return new Docket(DocumentationType.SWAGGER_2) .groupName("张涵哲的分组") .apiInfo(apiInfo()) // select开始,build结束,paths用来过滤 .select() .paths(PathSelectors.ant("/user/**")) .build(); }PathSelectors 类中其他的静态函数:
函数名 作用any() 扫描全部接口
none() 不扫描
ant(String path) 扫描指定路径
regex(String regex) 根据正则表达式过滤
接口信息配置
简单接口显示
上面的图片是扫描到接口后默认生成的接口文档,Swagger 是以 Controller 为单位,对接口进行分组管理的,这个分组的元素在 Swagger 中称为 Tag,我们可以通过注解来修改一下接口文档,让他更人性化:
注解 作用@Api(tags = "") 标注在类上 用来表明接口组,tags=组名
@ApiOperation(value = "", notes = "", tags="") 标注在函数上 value=标题,notes=描述,tags=分组
@ApiParam("") 标注在参数列表中 表示当前参数代表的含义以及用法
例如下面我们编辑一下当前的 UserController:
@Api(tags = "User接口文档") @RestController @RequestMapping("/user") public class UserController { @GetMapping("http://www.likecs.com/") @ApiOperation("查询所有user") public R getList(){ ... } @PostMapping("http://www.likecs.com/") @ApiOperation(value = "添加新的user信息", notes = "传入用户信息进行封装user进行添加") public R addUser(@RequestBody UserBean user){ ... } @PutMapping("/{id}") @ApiOperation(value = "通过ID更新user信息", notes = "路径传入ID,json传输修改信息") public R updateUser(@PathVariable("id")Long id, @RequestBody UserBean user){ ... } @DeleteMapping("/{id}") @ApiOperation(value = "通过ID删除user信息", notes = "路径传入ID进行删除") public R deleteUser(@ApiParam("删除的目标ID")@PathVariable("id") Long id){ ... } }效果如下图所示: