Springboot引入Knife4j接口文档

springboot引入Knife4j接口文档

前言:前后端联调时使用knife4j文档能大大减少沟通成本,为前端测试接口连通性以及接口参数带来很大的方便。

本文档在jdk11,springboot 2.7.17版本下编写

1. 引入依赖

<!--添加Knife4j依赖-->
<dependency>
    <groupId>com.github.xiaoymin</groupId>
    <artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
    <version>4.1.0</version>
</dependency>

2. 编写配置类

package com.jankin.applet.system.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
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.EnableSwagger2WebMvc;

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfig {//对于配置类要求可以看懂即可,不用反复去写,将来可以CV
    //配置Swagger2的Docket的Bean实例
    @Bean
    public Docket createRestApi() {
        return new Docket(DocumentationType.SWAGGER_2)
                // apiInfo():配置 API 的一些基本信息,比如:文档标题title,文档描述description,文档版本号version
                .apiInfo(apiInfo())
                // select():生成 API 文档的选择器,用于指定要生成哪些 API 文档
                .select()
                // apis():指定要生成哪个包下的 API 文档
                .apis(RequestHandlerSelectors.basePackage("com.jankin.applet.controller"))
                // paths():指定要生成哪个 URL 匹配模式下的 API 文档。这里使用 PathSelectors.any(),表示生成所有的 API 文档。
                .paths(PathSelectors.any())
                .build();
    }
    //文档信息配置
    private ApiInfo apiInfo() {
        return new ApiInfoBuilder()
                // 文档标题
                .title("Knife4j接口文档")
                // 文档描述信息
                .description("Knife4j接口文档")
                // 文档版本号
                .version("1.0")
                .build();
    }
}

3. 测试连接

访问url ip:port/doc.html 即可访问接口文档页面
在这里插入图片描述

4. 注解使用

  • @Api(tags = "01.用户管理模块")

    @Api标注在Controller类上,在页面上接口文档页面上会分类替代Controller名称

  • @ApiOperation(value="查询列表")

    @ApiOperation标注在Controller方法上,在接口文档页面会显示value内容替代方法名

  • @ApiModelProperty(value = "用户名", required = true, example = "赵丽颖")

    @ApiModelProperty标注在入参的dto变量上,value会替代具体参数名称,required会显示是否必填项,example会给出默认值

  • @ApiImplicitParam(name = "id", value = "微博", required=true, dataType = "int")

    @ApiImplicitParam标注在Controller方法上,对未封装参数进行注释,value会替代具体参数名称,required会显示是否必填项,dataType 指定参数类型

  • @ApiIgnore

    @ApiIgnore标注在Controller方法的入参上,被标注的参数表示忽略该参数,不会在接口文档中显示,例如HttpRequest参数不需要显示。

5. 配置移除接口文档

在生产环境肯定不允许接口文档的出现,如果每次打包生产时都移除依赖删除配置文件太麻烦,Knife4j提供配置方式,在配置文件application.yml中添加配置

knife4j:
  enable: true
  production: true

此时在打包时,配置以上配置即可不显示接口文档。

当然如果配置文件分dev和pro版本,则直接在pro中配置即可。

相关推荐

  1. Springboot整合Knife4j接口文档

    2024-03-13 09:56:01       36 阅读
  2. SpringBoot项目整合Knife4j接口文档

    2024-03-13 09:56:01       140 阅读
  3. SpringBoot集成knife4j

    2024-03-13 09:56:01       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-13 09:56:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-13 09:56:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-13 09:56:01       82 阅读
  4. Python语言-面向对象

    2024-03-13 09:56:01       91 阅读

热门阅读

  1. 在Ubuntu 20.04中设置开机自启动脚本

    2024-03-13 09:56:01       42 阅读
  2. 【设计模式专题之原型模式】5. 矩形原型

    2024-03-13 09:56:01       35 阅读
  3. 项目示例 - 3.服务调用 - 1.Openfeign

    2024-03-13 09:56:01       43 阅读
  4. WPF Command

    2024-03-13 09:56:01       39 阅读
  5. WPF中 INotifyPropertyChanged

    2024-03-13 09:56:01       39 阅读
  6. 力扣每日练习3.12

    2024-03-13 09:56:01       40 阅读
  7. JVM垃圾收集器之CMS垃圾收集器和G1垃圾收集器

    2024-03-13 09:56:01       45 阅读
  8. git 工具常用命令

    2024-03-13 09:56:01       44 阅读
  9. 【Linux的shell原理 与 Linux权限】

    2024-03-13 09:56:01       37 阅读
  10. Git高级玩法:Rebase、Cherry-pick与Stash实战解析

    2024-03-13 09:56:01       41 阅读
  11. flask框架-03

    2024-03-13 09:56:01       33 阅读
  12. 使用Python检测贝叶斯网络的因果关系检测

    2024-03-13 09:56:01       33 阅读
  13. C++/CLI学习笔记3(快速打通c++与c#相互调用的桥梁)

    2024-03-13 09:56:01       40 阅读