实际项目中Swagger的两种配置方式

Swagger项目实战中Docket分布

一:概述
  • 首先介绍一下docket和group

不同的模块相同或者不同的docket,最后可以有两种不同的展示方法

new Docket().groupName就是最右上方的下拉框

new Docket().apiInfo(new apiInfo(title(“大标题”)))就是这个页面左上角最明显的大名字

  • 所有接口都放在一个docket下面,像这种

image-20211110173454016

  • 不同模块接口放在不同docket,像下面这种

image-20211110173556575

二:图一实现方法

image-20211110173733732

package com.gsafety.screen.wuhu.swagger;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.bind.annotation.RestController;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
@Configuration
@EnableSwagger2
public class SwaggerConfig {
  @Bean
  public Docket createRestApi() {
    return new Docket(DocumentationType.SWAGGER_2)
        .apiInfo(apiInfo())
        .useDefaultResponseMessages(false)
        .select()
        .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
        .build();
  }

  private ApiInfo apiInfo() {
    return new ApiInfoBuilder()
        .title("芜湖大屏查询")//大标题
        .version("1.0")//版本
        .build();
  }

}

核心就是select().apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))

意思就是筛选了只具有ClassAnnotation类注解RestController这个注解的接口

然后就是在每个Controller里面填写

@Rest Controller

@Api(“模块名字”)

//Controller里面代码开头如下
@Api(value = "隐患相关接口", tags = {"隐患相关接口"})
@RestController
@RequestMapping("/accident")
@Slf4j
public class AccidentController extends BaseController {
三:图二实现方法

image-20211110174158503

//注解代码
package com.gsafety.pms.dept.config.swagger;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

@Target({ElementType.METHOD})
@Retention(RetentionPolicy.RUNTIME)
public @interface ApiForBackEndInDept {
}



//swaggerConfig代码
package com.gsafety.pms.dept.config.swagger;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;

/**
 * @author dj
 * @Description TODO
 * @Date 2021/11/8 10:57
 */
@Configuration
@EnableSwagger2
public class DeptSwaggerConfig {

    @Bean
    public Docket createDeptApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                .groupName("部门对象相关API接口")
                .apiInfo(resApiInfo())
                .useDefaultResponseMessages(false)
                .select()
                .apis(RequestHandlerSelectors.withMethodAnnotation(ApiForBackEndInDept.class))
                .build();
    }

    private ApiInfo resApiInfo() {
        return new ApiInfoBuilder()
                .title("部门对象相关API接口")//大标题
                .version("1.0")//版本
                .build();
    }
}

这个意思就是给每个模块加上一个注解和swagger配置,

其中自定义注解就是用于写在controller里面的接口里面,每个加上了这个注解的接口都会被放在这个docket里面。

而swagger配置就是用于产生新的groupName和Title

上面两个配置完之后直接在controller里面写上注解名字@ApiForBackxxx()就可以直接将该接口放在固定的某一个docket里面了。

 */
@Slf4j
@Api(tags = "部门API")
@RestController
@RequestMapping("/dept/v1")
public class SysDeptController extends BaseController {

    @Autowired
    private SysDeptService deptService;

    @ApiOperation("分页查询部门信息")
    @ApiForBackEndInDept
    @PostMapping("/pageDept")
    public ResponseModel<PageModel<SysDept>> pageDept(

e SysDeptService deptService;

@ApiOperation("分页查询部门信息")
@ApiForBackEndInDept
@PostMapping("/pageDept")
public ResponseModel<PageModel<SysDept>> pageDept(

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值