当前位置: 首页 > article >正文

Knife4j配置 ▎使用 ▎教程 ▎实例

knife4j简介

  支持 API 自动生成同步的在线文档:使用 Swagger 后可以直接通过代码生成文档,不再需要自己手动编写接口文档了,对程序员来说非常方便,可以节约写文档的时间去学习新技术。

  提供 Web 页面在线测试 API:光有文档还不够,Swagger 生成的文档还支持在线测试.参数和格式都定好了,直接在界面上输入参数对应的值即可在线测试接口

   knife4j 前身是 swagger-bootstrap-ui, 取名 knife4j 是希望它能像一把匕首一样小巧,轻量,并且功能强悍!

knife4j是swagger的升级版

knife4j配置

第一步:导入jar包

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

第二步:配置config文件(knife4j的配置类)

package com.kid.news.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.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2WebMvc;

@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.kid.news.web")) //扫描地址
                .paths(PathSelectors.any())
                .build();
        return docket;
    }
}

注:.apis(RequestHandlerSelectors.basePackage("com.kid.news.web")) //为扫描地址,我们需要填写自己的web文件地址

knife2j使用

第一步:在类中添加标签

@Api:用在类上,说明该类的作用,tags类的功能进行描述.

@Api(tags="用户登录控制器")

后端代码样式: 

前端样式:

第二步:在方法上添加标签说明 

@ApiOperation:用在方法上,用于对方法功能说明。

@ApiOperation(value="方法概述")

后端样式: 

前端样式:

第三步:添加方法响应值的标签说明

@ApiImplicitParam:用来注解来给方法入参增加说明

后端样式:

前端样式:

如何参数为模型类,我们可以直接在该模型类中添加解释标签

@ApiModel:描述一个Model的信息(参数为实体类时使用)

@ApiModelProperty:描述一个model的属性

后端样式:

前端样式:

第五步:响应码的注解标签

@ApiResponses:用于表示一组响应

@ApiResponse:用在@ApiResponses中,一般用于表达响应信息

后端样式: 前端样式: 

向后端发出测试请求 



 感谢大家的观看,本次分享就到这里。希望我的内容能够对您有所帮助。创作不易,欢迎大家多多支持,您的每一个点赞都是我持续更新的最大动力!如有不同意见,欢迎在评论区积极讨论,让我们一起学习、共同进步!如果有相关问题,也可以私信我,我会认真查看每一条留言。期待下次再见!

                                       希望路飞的笑容可以治愈努力路途中的你我!

博主vx:Dreamkid05 --->欢迎大家和博主讨论问题 


http://www.kler.cn/a/370533.html

相关文章:

  • Reactor 模式在 Edis、Nginx 和 Netty 中的应用与高性能网络模式解析
  • 【分类】【损失函数】处理类别不平衡:CEFL 和 CEFL2 损失函数的实现与应用
  • 封装Redis工具类
  • 第12篇:从入门到精通:掌握python高级函数与装饰器
  • Ubuntu 22.04 TLS 忘记root密码,重启修改的解决办法
  • 反转字符串中的单词 II:Swift 实现与详解
  • Peach-9B-8k-Roleplay模型部署指南
  • 利用Kubernetes原生特性实现简单的灰度发布和蓝绿发布
  • 为什么架构设计禁止IP直连?
  • 网管平台(进阶篇):网管软件的配置方式
  • 数据库产品中SQL注入防护功能应该包含哪些功能
  • Golang | Leetcode Golang题解之第515题在每个树行中找最大值
  • Android 相机CameraX框架
  • 【面试】rabbitmq的主要组件有哪些?
  • 什么是时间戳?怎么获取?有什么用?
  • Django入门教程——用户管理实现
  • MySQL的权限系统
  • 【含文档】基于ssm+jsp的房屋租赁管理系统(含源码+数据库+lw)
  • 数字IC开发:布局布线
  • 动手学深度学习9.6. 编码器-解码器架构-笔记练习(PyTorch)
  • SQL Server 中,将单行数据转换为多行数据
  • 深度学习-BP算法详解
  • Python BeautifulSoup (bs4) 中 HTML 元素的定位与查找
  • 网页端.js和qt C++ 文件 怎么进行数据传递
  • MySQL5.7实现 row_number() over()函数的功能
  • 《计算机网络》期末复习资料