简介

官网:Knife4j

对于后端开发者来说,接口文档就是对我们编写的接口进行说明,通过接口文档,前后端开发可以更好地协作。Knife4j 是集 Swagger 和 OpenAPI 为一体的增强解决方案,拥有更多更强大的功能。

使用步骤

  1. 引入依赖
    1
    2
    3
    4
    5
    6
    <!--引入Knife4j的官方start包,该指南选择Spring Boot版本<3.0,开发者需要注意-->
    <dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
    <version>4.4.0</version>
    </dependency>
  2. 创建配置类(根据需求修改)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    @Configuration
    @EnableSwagger2WebMvc
    public class Knife4jConfiguration {

    @Bean(value = "dockerBean")
    public Docket dockerBean() {
    //指定使用Swagger2规范
    Docket docket=new Docket(DocumentationType.SWAGGER_2)
    .apiInfo(new ApiInfoBuilder()
    //描述字段支持Markdown语法
    .description("# Knife4j RESTful APIs")
    .termsOfServiceUrl("https://doc.xiaominfo.com/")
    .contact("xiaoymin@foxmail.com")
    .version("1.0")
    .build())
    //分组名称
    .groupName("用户服务")
    .select()
    //这里指定Controller扫描包路径
    .apis(RequestHandlerSelectors.basePackage("com.github.xiaoymin.knife4j.controller"))
    .paths(PathSelectors.any())
    .build();
    return docket;
    }
    }
  3. 创建接口 Controller 类
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    @Api(tags = "首页模块")
    @RestController
    public class IndexController {

    @ApiImplicitParam(name = "name",value = "姓名",required = true)
    @ApiOperation(value = "向客人问好")
    @GetMapping("/sayHi")
    public ResponseEntity<String> sayHi(@RequestParam(value = "name")String name){
    return ResponseEntity.ok("Hi:"+name);
    }
    }
  4. 启动项目,访问接口文档
    1
    http://localhost:8080/doc.html