首页 > 其他分享 >Knife4j的介绍与使用

Knife4j的介绍与使用

时间:2024-07-12 21:29:13浏览次数:18  
标签:Knife4j 配置 介绍 private API 文档 接口 使用

目录

一、简单介绍

1.1 简介

  • Knife4j 是一款基于Swagger的开源文档管理工具,主要用于生成和管理 API 文档。
    在这里插入图片描述

  • 它提供了一套美观、功能强大的界面,可以帮助开发者快速浏览、测试和理解后端 API 接口。

1.2 主要特点和功能:

Swagger 兼容性:

Knife4j 基于 Swagger,能够兼容 Swagger 的各种功能和注解,支持生成符合 OpenAPI 规范的文档。

可视化界面:

Knife4j 提供了直观的可视化界面,展示 API 接口的详细信息,包括请求、响应、参数说明等。

在线调试和测试:

在 Knife4j 的界面中,可以直接对 API 进行调试和测试,支持修改参数、发送请求并查看响应结果,方便开发者进行接口的验证和调试。

权限控制:

可以配置权限控制,限制特定用户或角色访问和操作 API 文档,保障接口的安全性。

自定义配置:

Knife4j 提供了丰富的配置选项,开发者可以根据项目需求进行自定义配置,如修改 UI 样式、调整文档的展示内容等。

集成简便:

集成 Knife4j 到项目中相对简单,一般通过 Maven 或 Gradle 添加依赖,并在 Spring Boot 项目中配置即可快速启用。

二、使用步骤:

2.1 添加依赖:

在项目的 Maven 或 Gradle 配置文件中添加 Knife4j 的依赖。

Maven 示例:

  <!--  接口文档 -->
        <dependency>
            <groupId>com.github.xiaoymin</groupId>
            <artifactId>knife4j-spring-boot-starter</artifactId>
            <version>3.0.3</version>
        </dependency>

2.2 yml数据源配置

spring:
  datasource:
    driver-class-name: com.mysql.jdbc.Driver
    url: jdbc:mysql://localhost:3306/database?serverTimezone=UTC
    username: root
    password: root
    # 数据库连接池
    type: com.alibaba.druid.pool.DruidDataSource
  mvc:
    pathmatch: # Springfox使用的路径匹配是基于AntPathMatcher的
      # 所以需要配置此参数
      matching-strategy: ant_path_matcher

2.3 创建knife4j配置类

@Configuration // 开启配置
@EnableSwagger2 // 启动Swagger2
public class Knife4jConfiguration {

    @Bean
    public Docket defaultApi2() {
        String groupName = "1.0版本";
        Docket docket = new Docket(DocumentationType.OAS_30)
                // 是否启用Swagger,true启用,false不启用
                .enable(true)
                .apiInfo(new ApiInfoBuilder()
                        .title("这是LiCoffee-Test-knife4j API ")
                        .description("这是项目描述")
                        .termsOfServiceUrl("服务器URL")
                        .contact(new Contact("LiCoffee", null, "[email protected]"))
                        .version("1.0")
                        .build())
                //分组名称
                .groupName(groupName)
                .select()
                // 这里指定Controller扫描包路径,没有加注解的接口方法也会生成接口文档
                .apis(RequestHandlerSelectors.basePackage("com.controller"))

                // 这里指定只有加了注解的才会生成接口文档
                //.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

以上就配置完了,还有一些小细节下在讲,通过访问http://localhost:8080[/项目名]/doc.html

在这里插入图片描述

2.4 注解的作用

@Api(tags = "接口描述信息")

添加在controller层的类上

在这里插入图片描述


    @ApiOperation("根据用户ID查找")

添加在方法上

在这里插入图片描述


其他

  • @ApiModel:用对象来接收参数 ,修饰类

  • @ApiModelProperty:用对象接收参数时,描述对象的一个字段

    例如:

    @ApiModel(description = "用户实体类")
    public class User {
        @ApiModelProperty(name="id", value="用户id")
        private Integer id;
        @ApiModelProperty(value="用户姓名")
        private String name;
    
  • @ApiResponse:HTTP响应其中1个描述

  • @ApiResponses:HTTP响应整体描述,一般描述错误的响应

    // 针对响应状态 修饰方法
    @ApiResponses({
                @ApiResponse(code=500, message = "服务器异常")
        })
    
  • @ApiIgnore:使用该注解忽略这个API

    @ApiError :发生错误返回的信息

    @ApiParam:单个参数描述,用在控制器的方法上

    @ApiImplicitParam:一个请求参数,用在方法上

    @ApiImplicitParam(name = "id", value = "用户ID", required = true, dataType = "Integer", paramType = "path")
    
    @ApiImplicitParams({
                @ApiImplicitParam(),
                @ApiImplicitParam()
        })
    
  • 针对返回值,使用泛型表示

    @ApiModel
    public class R {
    
        @ApiModelProperty(value = "返回数据状态",notes = "200成功 500失败")
        private int code;
        private String msg;
        @ApiModelProperty(value = "返回数据",notes = "可以是具体的对象,也可以是null")
        private Object data;
    

通过以上步骤,你可以快速集成 Knife4j 到你的 Spring Boot 项目中,并且利用其提供的强大功能来管理和展示 API 文档。


最后

如果感觉有收获的话,点个赞

标签:Knife4j,配置,介绍,private,API,文档,接口,使用
From: https://blog.csdn.net/m0_73940426/article/details/140304643

相关文章

  • 万字长文!流行 AI 视频生成大模型介绍 & 浅体验
    目录国外AI视频生成大模型Sora——值得期待的引领者官方描述拥有强大的能力一经发布,立即爆火不同业内人士的评价周鸿祎的评价陈楸帆的评价值得期待的引领者DreamMachine——宣传虽好,但仍需努力新兴的AI视频生成大模型媒体强烈的追捧实测体验:粗糙的画质,游戏般的运......
  • 如何在函数中使用return返回axios的请求结果
    使用场景:在添加学生上课记录的时候,需要先获取学生的剩余课时,需要通过接口获取。所以需要封装一个方法,能够通过接口获取学生的课时数量。解决方案:通过异步解决封装方法的代码如下:constgetStudentCourseCount=async()=>{letnum=0awaitaxios({method:......
  • python:使用matplotlib库绘制图像(四)
    作者是跟着http://t.csdnimg.cn/4fVW0学习的,matplotlib系列文章是http://t.csdnimg.cn/4fVW0的自己学习过程中整理的详细说明版本,对小白更友好哦!四、条形图1.一个数据样本的条形图条形图:常用于比较不同类别的数量或值,以及进行简单的数据分析。直方图:常用于分析数据的集中趋......
  • 一款好用的ai工具的安装及使用“文心一言”
    现在各种各样的ai工具已经出来,为了提高解决问题的效率,我们应该要学会使用并借助工具提高效率,以免在这个已经很卷的世界里卷上加卷,我们应该要尽可能提高效率,让自己能不卷则不卷,让工作更有度,让生活更快乐。发现很少搜到怎么安装文心一言的,所以特意记录下windows系统(1)下载安装......
  • MySQL 简单使用与备份恢复
    简单使用--使用安装版本,不要使用zip版,会没有my.ini文件。--mariadb10.4.34安装axurecloud437版失败,换成10.3.39没有问题。--1.使用createdatabase语句创建数据库CREATEDATABASEIFNOTEXISTSdb_nameDEFAULTCHARSETutf8;--2.查看创建的DB的字符集selects......
  • vim内置erm的使用及实现
    intro在使用vim的时候,一个非常常用的功能就是搜索功能。搜索在缺少工程级别搜索的情况下,搜索通常不是一次完成的:通常的场景是提供一个最明显的关键字(并且忽略大小写),然后从结果中再缩小搜索范围,直到找到搜索结果。在这个迭代的过程中,可能需要从上次的输出中拷贝一部分、简单编......
  • Docker 使用基础(3)—容器
                         ......
  • 如何在 SwiftUI 中熟练使用 visualEffect 修饰符
    文章目录前言介绍visualEffect什么是视觉效果?visualEffect修饰符视觉效果完整的代码总结前言在WWDC23中,SwiftUI引入了一个名为visualEffect的新视图修饰符。此修饰符允许我们通过访问特定视图的布局信息来附加一组可动画化的视觉效果。下面我们将学习如何......
  • Django静态文件系统之meida文件,Django配置文件介绍,RBAC权限系统
    ⅠDjango静态文件系统之meida文件【一】问题引入一般常用的静态文件:static但是,媒体文件:图片,视频,音频……会随着用户改变而改变,不应该作为静态文件来使用应该是媒体资源于是Django提供了另一种静态文件语法meida文件【二】配置使用在Django的settings里面DEBUG—>开......
  • 【后端 · 初学】使用IDEA新建一个Springboot项目
    1【newproject】=》【Springboot】=》配置项目的名称和存放位置,type选择【maven】。选择jdk,最好大于等于17.2选择需要的依赖,本项目使用mybatis-plus,所以不需要添加mybatis的依赖。选择完成点击create即可。3修改pom.xml,下面是一份验证过没有问题的依赖配置。由于......