Swagger3探索之游龙入海

引言

后端开发中常用的接口调用工具一般使用Postman、ApiPost工具,但后期需要与前端联调,要补充接口文档花费大量时间,此时Swagger3应运而生,大大提高沟通交流的效率。

引用依赖

<!-- Swagger3 调用方式 http://ip:port/swagger-ui/index.html -->
<dependency><groupId>org.springdoc</groupId><artifactId>springdoc-openapi-starter-webmvc-ui</artifactId>
</dependency>

常用注解

注解标注位置作用
@TagController类标识Controller作用
@Parameter参数标识参数作用
@Parameters参数参数多重说明
@Schemamodel层的JavaBean描述模型的作用及每个属性
@Operation方法描述方法作用
@ApiResponse方法描述响应状态码

举例说明常用注解的使用

@RestController
@Tag(name = "支付微服务模块", description = "支付基本功能")
public class PayController{@ResourcePayService payService;@PostMapping(value = "/pay/add")@Operation(summary = "新增", description = "新增支付记录")public String addPay(@RequestBody Pay pay){System.out.println(pay.toString());int i = payService.add(pay);return "成功插入记录,返回值:"+i;}
}

含分组迭代的config配置类

import io.swagger.v3.oas.models.ExternalDocumentation;
import io.swagger.v3.oas.models.OpenAPI;
import io.swagger.v3.oas.models.info.Info;
import org.springdoc.core.models.GroupedOpenApi;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;@Configuration
public class Swagger3Config {@Beanpublic GroupedOpenApi PayApi() {return GroupedOpenApi.builder().group("支付微服务模块").pathsToMatch("/pay/**").build();}@Beanpublic GroupedOpenApi OtherApi() {return GroupedOpenApi.builder().group("其它微服务模块").pathsToMatch("/other/**", "/others").build();}/*@Beanpublic GroupedOpenApi CustomerApi(){return GroupedOpenApi.builder().group("客户微服务模块").pathsToMatch("/customer/**", "/customers").build();}*/@Beanpublic OpenAPI docsOpenApi() {return new OpenAPI().info(new Info().title("Baize-Cloud-2024").description("后端通用设计").version("v1.0")).externalDocs(new ExternalDocumentation().description("www.baize.com").url("https://yiyan.baidu.com/"));}
}

Swagger3使用

项目启动后,访问链接
** http://localhost:8001/swagger-ui/index.html **

在这里插入图片描述

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

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

相关文章

已后悔!为什么不早点用多微信管理工具?

对于有多个微信号的人来说&#xff0c;每次都要在不同微信号和设备之间来回切换&#xff0c;实在是既麻烦又容易搞混。 这时候&#xff0c;只需要一个多微信管理工具——微信管理系统就能解决啦&#xff01; 1、多号同时登陆聚合聊天 它支持多个微信号同时登录在同一个页面上…

【已解决】Vue 3+TS项目,无法找到模块“XXX”的声明文件,项目报错无法找到声明文件

前言 最近在做vue 3 TS项目&#xff0c;创建项目时需要引入vue-router 4&#xff0c;在main根文件中引入路由时出现了无法找到引入文件的报错。 解决 最后发现是创建router文件中的index文件时错误的创建为了.js文件&#xff0c;但是在创建框架时默认使用的是TS。将文件类型…

容器网络隔离验证

结论&#xff0c;可以直接扫描内网路由能通的机器。 1.节点1 192.168.55.6 2.节点2 192.168.55.5 3.非节点3 192.168.55.3

线上MQ消息堆积了怎么处理?被面试官问麻了

面试官&#xff1a;我看你简历上有使用RabbitMQ的经历&#xff0c;那你能说说如果现在线上MQ消息大量堆积&#xff0c;需要你处理&#xff0c;你要怎么解决&#xff1f; 小小&#xff1a;把队列删了这样就看不到堆积了。 面试官&#xff1a;好好好&#xff0c;果然是百年难得一…

全面复习C++,为你即将步入职场的面试铺就胜利之路!

写在前面&#xff1a; C作为一门广泛应用的编程语言&#xff0c;掌握它将是你在面试中获得成功的关键。如果你正在学习C&#xff0c;或者即将毕业踏入职场&#xff0c;迎接新的挑战和机遇而。这里&#xff0c;为了方便你的复习&#xff0c;特此为你录制了一场全面复习C的视频&…

语义分割蒸馏1:基于注意力引导的特征蒸馏方法(Attn)

与现有的常用的从教师向学生提取知识的复杂方法相比,所提出的方法展示了一种简单而强大的方法的功效,该方法可以利用精细的特征图来转移注意力。所提出的方法已被证明在提取丰富信息方面是有效的,在作为密集预测任务的语义分割方面优于现有方法。所提出的注意力引导特征提取…

glBindTexture函数的理解

简单的说opengl的设计思想&#xff0c;实现较早&#xff0c;并不是基于对象&#xff0c;所以API操作&#xff0c; 总是以奇怪的enum枚举类型来作为操作对象。形成的编程范式就是先bind绑定到一个named obj&#xff08;其实是个整数&#xff09;并在内部创建一个该target类型对象…

通俗易懂:解释MySQL中DCL(数据控制语言)的作用。

MySQL中的DCL&#xff08;Data Control Language&#xff09;是指用于管理和控制数据库系统中用户访问权限以及相关安全机制的一类SQL语言。DCL的主要作用在于确保数据库系统的安全性&#xff0c;允许数据库管理员和其他具有相应权限的用户来定义谁可以访问数据库&#xff0c;以…

Spring 日志规范

1、日志的作用 日志是在系统运行过程中关键的节点的数&#xff0c;这个些日志的记录方便当系统出现问题方便问题查找。 打印参数必须是有意义&#xff0c;连贯的。以方便快速定位问题。 2、日志打印规范 常规日志规范写法&#xff1a; logger.info("验证码: {} ",…

DreamPolisher、InternLM2 、AniArtAvatar、PlainMamba、AniPortrait

本文首发于公众号&#xff1a;机器感知 DreamPolisher、InternLM2 、AniArtAvatar、PlainMamba、AniPortrait DreamPolisher: Towards High-Quality Text-to-3D Generation via Geometric Diffusion We present DreamPolisher, a novel Gaussian Splatting based method wit…

Spring Boot 使用过滤器、拦截器、监听器

前言 作用 过滤器&#xff08;Filter&#xff09;&#xff1a;当有一堆请求&#xff0c;只希望符合预期的请求进来。拦截器&#xff08;Interceptor&#xff09;&#xff1a;想要干涉预期的请求。监听器&#xff08;Listener&#xff09;&#xff1a;想要监听这些请求具体做了…

【数据结构】树、二叉树与堆(长期维护)

下面是关于树、二叉树、堆的一些知识分享&#xff0c;有需要借鉴即可。 一、初识树&#xff08;了解即可&#xff09; 1.树的概念 概念&#xff1a;一种非线性数据结构&#xff0c;逻辑形态上类似倒挂的树 树的构成&#xff1a;由一个根左子树右子树构成&#xff0c;其中子树…

p8670题解

题目&#xff1a;求 $\sum_{i1}^n\sum_{j1}^n\gcd(i,j)$ 的值。推式子 ∑ i 1 n ∑ j 1 n gcd ⁡ ( i , j ) 2 \sum_{i1}^n\sum_{j1}^n\gcd\left(i,j\right)^2 i1∑n​j1∑n​gcd(i,j)2 ∑ i 1 n ∑ j 1 n ∑ k 1 n k 2 [ gcd ⁡ ( i , j ) k ] \sum_{i1}^n\sum_{j1}…

unity学习(70)——编译游戏发生错误2

1.全屏问题其实无所谓&#xff0c;windows用tab可以切出来的。 2.现在主要问题是服务器try了以后虽然不崩溃了&#xff0c;但不再显示2个实例对象了&#xff0c;unity和exe此时都只能看到一个实例对象 2.1把之前报错位置的try-catch先注释掉 2.2 unity中此时登录666账号&…

leetcode代码记录(完全二叉树的节点个数

目录 1. 题目&#xff1a;2. 我的代码&#xff1a;小结&#xff1a; 1. 题目&#xff1a; 给你一棵 完全二叉树 的根节点 root &#xff0c;求出该树的节点个数。 完全二叉树 的定义如下&#xff1a;在完全二叉树中&#xff0c;除了最底层节点可能没填满外&#xff0c;其余每层…

洛谷_P5019 [NOIP2018 提高组] 铺设道路_python写法

P5019 [NOIP2018 提高组] 铺设道路 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) n int(input()) data list(map(int,input().split()))ans 0 for i in range(1,n):if data[i]>data[i-1]:ans data[i]-data[i-1]print(ansdata[0])

python在运行时控制台以表格形式输出结果prettytable.PrettyTable()

使用prettytable库按表格的形式美化输出结果 效果如图&#xff1a; 表格中可接收列表格式的数据&#xff0c;列表中装字符串 # 引入模块 import prettytable as pt# 创建表格与表头&#xff0c;包含五列&#xff0c;分别为train-epoch&#xff0c;class&#xff0c;precisio…

C语言内存函数(下)---memset和memcmp的使用,自定义类型:结构体(上)

memset的使用&#xff1a;它的返回类型是void*&#xff0c;它的表达式为&#xff1a;void * memset ( void * ptr, int value, size_t num );它所表达的意思是&#xff1a;以字节为单位&#xff0c;把子符变成想要的模样&#xff0c;它的头文件是<string.h>,它的代码为&a…

Day02-DDLDMLDQL(定义,操作,查询)(联合查询,子查询,字符集和校对集,MySQL5.7乱码问题)

文章目录 Day02-DDL&DML和DQL学习目标1. SQL语言的组成2. DDL2.1 数据库结构2.2 表结构2.3 约束2.3.1 主键约束(重要)(1)特点(2) 添加主键(3)删除主键(了解) 2.3.2 自增约束(1)特点(2) 添加自增约束(3)删除自增约束(了解) 2.3.3 非空约束(1)添加非空约束(2) 删除非空约束 2…

Midjourney辞典AIGC中英双语图文辞典+Midjourney提示关键词

完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077 完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077 完整内容下载&#xff1a;https://download.csdn.net/download/u010564801/89042077