Springboot3 + knife4j(springdoc) 框架整合

news2024/11/27 16:30:45

前言

kinfe4j文档地址:https://doc.xiaominfo.com/docs/quick-start
springdoc文档地址:https://springdoc.org/#demos
原本使用的是springfox,自Springboot3开始,knife4j引入了springdoc。
image.png

Maven引入

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

Springfox转换Springdoc

参考文档:https://springdoc.org/#migrating-from-springfox
image.png

@Api → @Tag 用于类,标识这个类是swagger的资源
@ApiIgnore→@Parameter(hidden = true)或@Operation(hidden = true)或@Hidden 用于类,方法,方法参数,表示这个方法或者类被忽略
@ApiImplicitParam → @Parameter 用于方法,表示单独的请求参数
@ApiImplicitParams → @Parameters 用于方法,包含多个请求参数
@ApiModel → @Schema 用于类 ,表示对类进行说明,用于参数用实体类接收
@ApiModelProperty(hidden = true) → @Schema(accessMode = READ_ONLY) 参数实体类某个参数不显示到接口文档中
@ApiModelProperty → @Schema 用于方法,字段,表示对model属性的说明或者数据操作更改
@ApiOperation(value = “foo”, notes = “bar”) → @Operation(summary = “foo”, description = “bar”) 用于方法,表示一个http请求的操作
@ApiParam → @Parameter 用于方法,参数,字段说明,表示对参数的添加元数据(说明或是否必填等)
@ApiResponse(code = 404, message = “foo”) → @ApiResponse(responseCode = “404”, description = “foo”) 用在@ApiResponses中,一般用于表达一个错误的响应信息

配置文件

一、单模块配置文件
@Configuration
public class SwaggerConfig {
  private Info createInfo(String title, String version){
      return new Info()
              .title(title)
              .version(version)
              .description("Knife4j集成springdoc-openapi示例")
              .termsOfService("http://条款网址")
              .license(
                      new License().name("Apache 2.0")
                      .url("http://doc.xiaominfo.com"));
  }

  @Bean
  public OpenAPI customOpenAPI() {
      return new OpenAPI()
              .info(createInfo("测试", "1.0.1"));
  }

}

效果:
image.png

二、多模块配置文件
@Configuration
public class SwaggerConfig {
    @Bean
    public GroupedOpenApi allOpenApi(@Value("${springdoc.version}") String appVersion) {
        String[] paths = {"/**"};
        return GroupedOpenApi.builder().group("总览")
        .addOpenApiCustomizer(openApi -> openApi.info(this.createInfo("后台管理系统API", appVersion)))
        .pathsToMatch(paths)
        .build();
    }

    @Bean
    public GroupedOpenApi sysOpenApi(@Value("${springdoc.version}") String appVersion) {
        String[] paths = {"/sys/**"};
        return GroupedOpenApi.builder().group("系统管理")
        .addOpenApiCustomizer(openApi -> openApi.info(this.createInfo("系统管理API", appVersion)))
        .pathsToMatch(paths)
        .build();
    }

    @Bean
    public GroupedOpenApi dataOpenApi(@Value("${springdoc.version}") String appVersion) {
        String[] paths = {"/data/**"};
        return GroupedOpenApi.builder().group("数据管理")
        .addOpenApiCustomizer(openApi -> openApi.info(this.createInfo("数据管理API", appVersion)))
        .pathsToMatch(paths)
        .build();
    }

    private Info createInfo(String title, String version){
        return new Info()
        .title(title)
        .version(version)
        .description("Knife4j集成springdoc-openapi示例")
        .termsOfService("http://条款网址")
        .license(
            new License().name("Apache 2.0")
            .url("http://doc.xiaominfo.com"));
    }

}

效果:
image.png

Auth3.0登录校验

待续…

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1096807.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无线设备的天线怎么安装最好?

天线作为无线传输过程中一个必不可少的配件&#xff0c;因此天线的安装和选型对于无线传输的稳定性发挥着至关重要的作用。本文将介绍影响天线安装对于无线通信效果的影响。 一、天线的工作原理 天线是一种能量变换器&#xff0c;它把传输线上传播的导行波&#xff0c;变换成在…

有哪些免费的数据恢复软件?EasyRecovery免费版下载

EasyRecovery作为一款专业的数据电脑恢复软件&#xff0c;它能够轻松搞定数据恢复&#xff0c;恢复丢失和删除的文件&#xff0c;支持电脑、相机、移动硬盘、U盘、SD卡、内存卡、光盘、本地电子邮件和 RAID 磁盘阵列等各类存储设备的数据恢复。这个新版本功能更加强大。目前的最…

54 完全平方数

完全平方数 理解&#xff1a;dp[i] 1 min ⁡ j [ 1 , i ] d p [ i − j 2 ] 1 {\min}_{j[1, \sqrt{i}]}dp[i-j^2] 1minj[1,i ​]​dp[i−j2] (不是贪心)题解1 DP 给你一个整数 n &#xff0c;返回 和为 n 的完全平方数的最少数量 。 完全平方数是一个整数&#xff0c;其值…

信号频谱分析与功率谱密度

当我们涉及无线通信、信号处理和电子设备时&#xff0c;信号频谱分析与功率谱密度是两个至关重要的概念。它们帮助我们理解信号的特性、噪声和频率分布&#xff0c;从而优化通信系统、设计滤波器以及进行故障诊断。本文将初步探讨信号频谱分析与功率谱密度&#xff0c;一起理解…

StarRC:版本陈旧引发的多corner提取RC失败

我正在「拾陆楼」和朋友们讨论有趣的话题&#xff0c;你⼀起来吧&#xff1f; 拾陆楼知识星球入口 运行StarRC提取多corner RC时会遇到提取失败的情况&#xff0c;当分次提取各个corner RC时却成功了&#xff0c;这种时候优先考虑nxtgrd版本陈旧的情况。 debug方法也简单&…

理解LoadRunner,基于此工具进行后端性能测试的详细过程(下)

5、录制并增强虚拟用户脚本 从整体角度看&#xff0c;用LoadRunner 开发虚拟用户脚本主要包括下面四步骤&#xff1a; 识别测试应用使用的协议 录制脚本 完善录制得到的脚本 验证脚本的正确性 识别被测应用使用的协议 如果明确知道了被测系统所采用的协议&#xff0c;可…

java小区物业水电费管理系统springboot+vue

智能小区管理系统被人们投放于现在的生活中进行使用&#xff0c;该款管理类软件就可以让管理人员处理信息的时间介于十几秒之间。在这十几秒内就能完成信息的编辑等操作。有了这样的管理软件&#xff0c;智能小区管理信息的管理就离无纸化办公的目标更贴近了。 这次开发的智能小…

RFID智能制造应用:助力企业提升制造效率!

随着企业间竞争加剧&#xff0c;如何提升企业生产效率&#xff0c;降低成本成为不少制造企业持续追求的目标。利用智能制造中的RFID设备&#xff0c;可以对企业入库、盘点、生产、出库等流程进行监控&#xff0c;本文将探讨智能制造中的RFID设备如何帮助企业提升制造效率&#…

Maven打包知识点

一.前言 今天在工作中需要给测试同学提供一个jar包&#xff0c;里面包含了pom里面得外部依赖&#xff0c;我依旧按照往常得方式进行打包 二.外部依赖变成jar包里面的class 发现打的jar包里面并没有外部依赖。 直接上代码 <plugins><plugin><artifactId>ma…

如何实现前端数据持久化(LocalStorage、IndexedDB等)?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…

TIA博途软件中如何设置在程序中自动显示变量的注释信息?

TIA博途软件中如何设置在程序中自动显示变量的注释信息? 本例以TIA博途V15为例进行举例说明 如下图所示,新建一个项目后,打开PLC变量表,这里我选择几个变量进行举例说明,给这几个变量添加注释信息, 打开OB1,编写一句简单的程序,如下图所示,可以看到此时变量只显示名称…

第三章 运算符与表达式Pro

三、运算符与表达式 C语言一共有34个运算符&#xff0c;记这些运算符时从以下几个方面记&#xff1a; 运算符的书写形式&#xff1b; 运算符的运算规则;(两个整数相除,结果为整数) 所能进行的操作数&#xff1b;&#xff08;取余运算符%&#xff0c;操作数只能是整数&#xff0…

面试题:Java反射和new效率对比,差距有多大?

文章目录 一、基础概念二、new 对象和反射创建对象的效率对比所以下面我们来探讨一下为什么这么大差别?总结起来有下面几个原因 三、反射和new 的使用场景反射的部分使用场景new对象和反射的区别 一、基础概念 Java中&#xff0c;一般我们创建一个对象可能会选择new一下个实例…

回顾vmware 补充细节

安装好esxi后怎么直接在DCUI界面&#xff08;直接控制台用户界面&#xff09;进入命令行页面 在该界面使用 ALT F1 进入 ALT 退出 I界面&#xff08;直接控制台用户界面&#xff09;用户需要在机房直连服务器上才可以看到该界面 VSphere 在老的CPU是不支持的 三种方式访…

调试神器--Rlog

概述 在现代软件开发中&#xff0c;日志记录系统是不可或缺的一部分。它不仅可以帮助开发人员在应用程序中定位和解决问题&#xff0c;还可以用于监控、性能分析、安全审计等方面。本文将介绍日志记录系统的基本概念、重要性以及如何构建一个高效的日志记录系统。 为什么需要…

AI时代Excel数据分析提升之道

欢迎关注博主 Mindtechnist 或加入【智能科技社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和技术。关…

Oculus经验记录

它的Unity插件以前的版本V39跟V40有问题。V40最奇葩&#xff0c;inputOVR组件中几乎什么都没有&#xff0c;V39还好&#xff0c;只是OVRcameraRG无法拖动倒inputOVR组件上&#xff0c;因类型差一点点&#xff08;这个我记得以前自己遇到过&#xff0c;有解决的记录&#xff0c;…

洗眼镜超声波清洗机品牌哪个值得买?眼镜超声波清洗机推荐

现在大部分人都离不开眼镜来辅助我们看远处的东西&#xff0c;不单单是眼镜&#xff0c;现在墨镜的使用量也很大&#xff0c;墨镜可以再太阳大的时候遮挡一下视线&#xff0c;近视眼镜可以辅助那些有近视眼的朋友看到更远处的地方。随着眼镜使用量越来越大&#xff0c;也有很多…

WSL Ubuntu 22.04.2 LTS 安装paddlepaddle-gpu==2.5.1踩坑日记

环境是wsl的conda环境。 使用conda安装paddlepaddle-gpu: conda install paddlepaddle-gpu2.5.1 cudatoolkit11.7 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle/ -c conda-forge 等待安装... 报错处理&#xff1a; (1)PreconditionNotMetError: Cannot lo…

虹科分享 | 2023Gartner®终端安全发展规律周期:AMTD引领未来

导语&#xff1a;在2023年Gartner终端安全发展规律周期中&#xff0c;自动移动目标防御&#xff08;AMTD&#xff09;崭露头角&#xff0c;虹科Morphisec被誉为AMTD领域的样本供应商。该周期呈现出终端安全领域的最新创新&#xff0c;旨在帮助安全领导者更好地规划、采纳和实施…