从0开始springboot后台管理项目--集成knife4j(文档说明工具)

1.什么是knife4j

官网介绍: knife4j是为Java MVC框架集成Swagger生成Api文档的增强解决方案

简单来说就是一个借口文档+调试工具,相当于swagger的一个升级版。页面更好看,功能更强大,支持微服务等。

官网地址:knife4j

2.使用knife4j

2.1修改pom.xml

这里使用当前官网最新办的2.0.9。

<dependency>
   <groupId>com.github.xiaoymin</groupId>
   <artifactId>knife4j-spring-boot-starter</artifactId>
   <version>2.0.9</version>
</dependency>

2.2配置文件

目录结构:

配置文件:

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {
 
    @Bean
    public Docket docket(Environment environment) {
        // 添加接口请求头参数配置 没有的话 可以忽略
        ParameterBuilder tokenPar = new ParameterBuilder();
        List<Parameter> pars = new ArrayList<>();
        tokenPar.name("token")
                .description("令牌")
                .defaultValue("")
                .modelRef(new ModelRef("string"))
                .parameterType("header").required(false).build();
        pars.add(tokenPar.build());
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                //是否启动swagger 默认启动
                .enable(true)
                //所在分组
                .groupName("snail")
                .select()
                //指定扫描的包路径
                .apis(RequestHandlerSelectors.basePackage("com.monkey.snail.modules"))
                .paths(PathSelectors.any())
                .build()
                .globalOperationParameters(pars);
    }
 
    private ApiInfo apiInfo() {
        Contact author = new Contact("李某人", "山东省烟台市", "1198025944@qq.com");
        return new ApiInfo(
                "snail文档",
                "snail文档",
                "1.0",
                "",
                author,
                "",
                "",
                new ArrayList()
        );
    }
}

经过上述配置我们已经可以启动项目,访问地址:http://localhost:8080/doc.html就可以看到knife4j的页面了,相对于swaggerUI界面确实好看不少。

2.3编写测试类

编写两个测试请求,一个get方法一个post方法。

TestController:

@Api(tags = "测试类")
@RestController
@RequestMapping("/test")
public class TestController {
 
    @ApiOperation("测试get方法")
    @ApiImplicitParam(name = "name", value = "姓名", required = true)
    @GetMapping("testGet")
    public String testGet(@RequestParam(value = "name") String name) {
        return "hello," + name;
    }
 
    @ApiOperation("测试post+实体类入参")
    @ApiOperationSupport(author = "ceshi")
    @PostMapping("testPost")
    public String testPost(@RequestBody TestDemo testDemo) {
        return testDemo.getName() + ":" + testDemo.getSex();
    }
}
TestDemo:
@ApiModel
@Data
public class TestDemo {
 
    @ApiModelProperty(value = "姓名", required = true)
    private String name;
    @ApiModelProperty(value = "性别", required = true)
    private String sex;
}

注意:路径要放在配置文件RequestHandlerSelectors.basePackage的配置路径下,否则无法扫描出。重新启动项目可以看到对应的接口信息。并可以在线完成调试等。至此knife4j基本功能已经完成。如果项目存在拦截器需要放行该路径。

 2.4增强模式

增强模式下增加了很多新的功能,比如:

接口添加作者增加接口作者名称以及排序功能
自定义文档

如果knife4j不足以满足接口说明可以通过Markdown自定义说明

访问权限控制生产环境屏蔽/页面权限控制
动态请求添加文档为一些动态的MAP/JSON等添加说明

增强模式下还有不少功能,可以参考官方文档进行配置。

增强模式的开启需要在application.yml文件中添加:

knife4j:
  #是否开启增强模式 默认false
  enable: true

2.5注解说明

knife4j中几个核心注解以及参数说明:

@ApiModel

        使用场景:作用在实体类上。

        主要属性说明:

                value:自定义类名称

                description:为类添加说明

@ApiModel(value = "测试类",description = "测试工具使用")
@ApiModelProperty

        使用场景:实体类的具体参数上

        主要属性说明:

                value:参数描述

                name:参数名称

                required:是否必传

                allowEmptyValue:是否允许为空

@ApiModelProperty(value = "姓名", required = true , name = "姓名" , allowEmptyValue = true )
private String name;
@Api:

        使用场景:controller层类上

        主要属性说明:

                tags:分组,可以传入多个值,在多个分组会同时显示

@Api(tags = "测试类")
@ApiOperation

        使用场景:controller层具体接口上,用来概述方法作用

@ApiOperationSupport

        使用场景:controller层具体接口上(加强版用)

        主要属性说明:

                author:添加作者

                order:排序

@ApiOperation("测试post+实体类入参")
@ApiOperationSupport(author = "ceshi",order =01 )

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: Knife4j 是一个基于 Swagger 的 API 开发工具,可以帮助开发者快速构建和管理 RESTful API。要集成 Knife4jSpringBoot 项目中,可以参考以下步骤: 1. 在 pom.xml 文件中添加 Knife4j 依赖; 2. 配置 Knife4j 的扫描路径; 3. 配置 Knife4j 的 UI 配置; 4. 配置 Knife4j 的全局配置; 5. 启动 SpringBoot 项目,访问 Knife4j UI。 ### 回答2: 要将Knife4j集成到Spring Boot项目中,需要进行以下步骤: 第一步是在项目的pom.xml文件中添加Knife4j的依赖项。可以通过在dependencies标签内添加以下代码来实现: ``` <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.8</version> </dependency> ``` 第二步是在Spring Boot的配置类中添加@EnableSwagger2Doc注解来启用Knife4j: ``` @Configuration @EnableSwagger2Doc public class SwaggerConfig { // 可以在这里进行一些其他的Swagger配置 } ``` 第三步是配置Swagger的基本信息,例如标题、描述等。在application.properties文件中添加以下配置: ``` knife4j.title=API接口文档 knife4j.description=这是一个使用Knife4j生成的接口文档 knife4j.version=1.0 ``` 第四步是在项目启动后,访问http://localhost:8080/doc.html(假设项目运行在localhost的8080端口)来查看Knife4j生成的接口文档页面。 集成完成后,可以在项目中使用一些注解来对接口进行描述、分组、授权等操作。例如,可以使用@Api注解来描述一个接口的基本信息,使用@ApiOperation注解来描述接口的操作等。 以上是将Knife4j集成到Spring Boot项目中的基本步骤。集成成功后,可以方便地生成和查看项目的接口文档,提高了API的可维护性和可读性。 ### 回答3: Spring Boot是一个开源的Java框架,可以用于快速构建基于Spring的应用程序。Knife4j是一个基于Swagger的API接口文档生成工具,可以方便地生成接口文档。 要集成Knife4j到Spring Boot项目中,首先需要在项目的pom.xml文件中添加Knife4j的依赖项。可以通过以下代码将其添加到pom.xml文件中: ``` <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>knife4j-spring-boot-starter</artifactId> <version>2.0.6</version> </dependency> ``` 添加完依赖项后,需要在项目的配置文件(application.properties或application.yml)中配置Knife4j相关的属性。例如,可以添加以下配置来设置文档页面的标题和描述: ``` knife4j.title=API接口文档 knife4j.description=这是一个演示项目的API接口文档 ``` 配置好属性后,可以在项目的启动类上添加`@EnableKnife4j`注解来启用Knife4j: ```java @SpringBootApplication @EnableKnife4j public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 启动项目后,访问`http://localhost:8080/doc.html`即可看到生成的接口文档页面。在这个页面上,可以查看项目中定义的API接口,并且可以方便地进行测试。 总的来说,集成Knife4j到Spring Boot项目中很简单,只需要添加依赖、配置属性,然后在启动类上添加注解即可。通过Knife4j生成的接口文档可以方便地查看和测试API接口,使得开发过程更加高效。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

子月三九

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值