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

knife4j使用

knife4j使用

knife4j使用

  • knife4j使用
      • 第一步:创建Spring Boot项目Knife4j的依赖包
      • 第二步:创建Swagger配置依赖
      • 第三步: 新建一个接口Controller类
      • 第四步: 权限拦截记得放行
      • 第五步: yaml文件中动态开启参数请求

原文:https://doc.xiaominfo.com/

不同规范以及Spring Boot3 OpenAPI3的使用请移步详细文档

第一步:创建Spring Boot项目Knife4j的依赖包

创建Spring Boot项目并且在pom.xml中引入Knife4j的依赖包,代码如下:

<!--引入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>

第二步:创建Swagger配置依赖

创建Swagger配置依赖,代码如下::

@Configuration
@EnableSwagger2WebMvc
public class Knife4jConfiguration {@Bean(value = "dockerBean")public Docket dockerBean() {//指定使用Swagger2规范Docket docket=new Docket(DocumentationType.SWAGGER_2).enable(true) //是否开启Swagger文档,这里可以根据环境动态配置.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;}
}

第三步: 新建一个接口Controller类

新建一个接口Controller类,如下:

@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);}
}

万事俱备,启动Spring Boot项目,浏览器访问Knife4j的文档地址即可查看效果

http://localhost:8080/doc.html

我使用的是springboot 2.2.4.RELEASE,shiro.version 1.4.0

第四步: 权限拦截记得放行

如果有权限拦截记得放行四个资源

"/swagger-ui.html",
"/webjars/**",
"/swagger-resources/**",
"/v2/**"

第五步: yaml文件中动态开启参数请求

yaml文件中增加,这样可以动态开启参数请求,主要是header有token这些,可以动态添加,也可以在页面自己勾选,但是需要刷新页面

knife4j:enable: truesetting:# 开启动态请求参数,true-开启,false-关闭enable-dynamic-parameter: true

在这里插入图片描述

在这里插入图片描述

相关文章:

  • MySQL中实现大数据量的快速插入
  • 华为仓颉语言如何进行交叉编译
  • Java微服务架构:Spring Cloud全栈指南,附最新Demo源码,可独立运行!
  • v3.0 YOLO篇-如何通过YOLO进行实验
  • 2024游戏安全白皮书:对抗激烈!PC游戏外挂功能数增长超149%,超85%移动外挂为定制挂(附获取方式)
  • 怎样通过神经网络估计股票走向
  • 华为RH1288HV3 BMC忘记用户名密码如何恢复默认
  • 【QT】QT6设置.exe文件图标
  • 华为云Flexus+DeepSeek征文 | 基于ModelArts Studio 的 DeepSeek API 实现行业深度搜索和分析
  • 云南安全员考试报名需要具备哪些条件?
  • 汇川EasyPLC MODBUS-RTU通信配置和编程实现
  • 力扣热题——罗马数字转整数
  • MySQL 查询用户权限的方法
  • 在WSL2中运行nvidia-smi时出现命令未找到的问题
  • vue2和vue3的区别
  • 如何更好地做出判断?
  • Prometheus的服务命令和配置文件
  • springboot03
  • Linux(Ubuntu)新建文件权限继承问题
  • 常见算法题目1 - 给定一个整数数组和一个目标值,找出数组中两个数之和等于目标值的数组下标组合
  • 设计网站 杭州/seo网络推广企业
  • heliohost wordpress/搜索引擎排名优化是什么意思
  • 怀化 优化生育政策/seo整站优化哪家好
  • 网站的交互设计包括哪些/搜索风云榜
  • 法院网站建设方案/seo高级教程
  • 做网站教学/哪里的网络推广培训好