Swagger3 GET请求,使用对象接收 Query 参数,注解怎么写?

news2025/1/11 14:08:16

简中互联网上就没一个靠谱的答案,最终翻到了 Github Issue 上才解决,真 TMD…… CSDN 就一坨 shit mountain

解决方案

原文:https://github.com/swagger-api/swagger-core/issues/4177

太长不看:
请求方法参数上加 @ParameterObject 注解

    @GetMapping("/list")
    @Operation(summary = "会议列表")
    public Response<List<ScheduleListItemVo>> listMeetings(@ParameterObject ListScheduleForm form)
问题描述

最近从 Swagger2 迁移到 Swagger3,遇到一个问题:Swagger3 如何处理 GET 请求的对象参数?

在 Swagger2 中,接口上不需要添加额外的 Swagger 注解,参数类添加 @ApiModel 注解,参数类的字段添加 @ApiModelProperty 注解即可。

@GetMapping("/list")
@ApiOperation("会议列表")
public Response<List<ScheduleListItemVo>> listMeetings(ListScheduleForm form)
@Data
@ApiModel("查询语言记录列表参数")
public class ListScheduleForm {

    /**
     * 查询的会议时间类型:1-未来会议、2-历史会议
     */
    @NotNull
    @ApiModelProperty("查询的会议时间类型:1-未来会议、2-历史会议")
    private Integer timeType = 1;

    /**
     * 查询页码
     */
    @ApiModelProperty("查询页码")
    private Integer page = 1;

    /**
     * 分页查询条数
     */
    @ApiModelProperty("分页查询条数")
    private Integer size = 20;

}

迁移到 Swagger3 后,注解发生了变化,参考对照表修改了注解:

@Api → @Tag
@ApiIgnore → @Parameter(hidden = true) or @Operation(hidden = true) or @Hidden
@ApiImplicitParam → @Parameter
@ApiImplicitParams → @Parameters
@ApiModel → @Schema
@ApiModelProperty(hidden = true) → @Schema(accessMode = READ_ONLY)
@ApiModelProperty → @Schema
@ApiOperation(value = "foo", notes = "bar") → @Operation(summary = "foo", description = "bar")
@ApiParam → @Parameter
@ApiResponse(code = 404, message = "foo") → @ApiResponse(responseCode = "404", description = "foo")
@GetMapping("/list")
@Operation(summary = "会议列表")
public Response<List<ScheduleListItemVo>> listMeetings(ListScheduleForm form)
@Data
@Schema(description = "查询语言记录列表参数")
public class ListScheduleForm {

    /**
     * 查询的会议时间类型:1-未来会议、2-历史会议
     */
    @NotNull
    @Schema(description = "查询的会议时间类型:1-未来会议、2-历史会议")
    private Integer timeType;

    /**
     * 查询页码
     */
    @Schema(description = "查询页码")
    private Integer page = 1;

    /**
     * 分页查询条数
     */
    @Schema(description = "分页查询条数")
    private Integer size = 20;

}

实际展示效果不符合预期,查询参数展示成了一个 Object:
在这里插入图片描述

期望效果是:
在这里插入图片描述

解决方案

一路搜寻到了 Swagger API 的 Github:https://github.com/swagger-api/swagger-core/issues/4177
很简单,请求方法参数上加 @ParameterObject 注解

    @GetMapping("/list")
    @Operation(summary = "会议列表")
    public Response<List<ScheduleListItemVo>> listMeetings(@ParameterObject ListScheduleForm form)

但注意这个是 springdoc-openapi-common 包下的注解,不是 swagger-annotations 包内的,当时在 swagger-annotation 包源码内找半天也没有合适的类,浪费了一点时间。

经验教训

查开源项目使用问题,首先还是考虑官方文档,其次 Github ISSUE。
至于 CSDN,呵呵……

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

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

相关文章

【异步并发编程】使用aiohttp构建Web应用程序

文章目录 1. 写在前面1. 什么是aiohttp&#xff1f;1.1. 什么是异步编程&#xff1f; 2. 安装aiohttp3. 异步HTTP服务器4. 异步请求5. aiohttp REST实例 【作者主页】&#xff1a;吴秋霖 【作者介绍】&#xff1a;Python领域优质创作者、阿里云博客专家、华为云享专家。长期致力…

行情不好,程序员的路在哪里?

最近有人提问&#xff0c;行情不好&#xff0c;程序员的路在哪里&#xff1f;今天的文章从远程工作、市场和流量思维、新技术、自媒体几个维度来讲讲。 远程工作 如果你在二三线城市&#xff0c;机会比较少&#xff0c;可以考虑一下远程工作。找一份美国或欧洲的远程工作&…

开源网安受邀参加网络空间安全合作与发展论坛,为软件开发安全建设献计献策

​11月10日&#xff0c;在广西南宁举办的“2023网络空间安全合作与发展论坛”圆满结束。论坛在中国兵工学会的指导下&#xff0c;以“凝聚网络空间安全学术智慧&#xff0c;赋能数字经济时代四链融合”为主题&#xff0c;邀请了多位专家及企业代表共探讨网络安全发展与数字经济…

助力燃气安全运行:智慧燃气管网背景延展

关键词&#xff1a;城市燃气管网、智慧燃气管网、智慧管网、智慧燃气管网解决方案、智慧燃气 01背景 当前&#xff0c;随着我国城市化进程不断加快&#xff0c;城市燃气管网也不断延伸&#xff0c;运行规模庞大&#xff0c;地下管线复杂&#xff0c;不少城市建设“重地上轻地…

Web后端开发_01

Web后端开发 请求响应 SpringBoot提供了一个非常核心的Servlet 》DispatcherServlet&#xff0c;DispatcherServlet实现了servlet中规范的接口 请求响应&#xff1a; 请求&#xff08;HttpServletRequest&#xff09;&#xff1a;获取请求数据响应&#xff08;HttpServletRe…

2011年09月29日 Go生态洞察:image/draw包的深度解析

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

会展服务预约小程序的作用如何

不少场景都会有会展服务需求&#xff0c;比如婚宴、年会、展会等&#xff0c;往往需要租订场地&#xff0c;不同地域不同时间地点等&#xff0c;尤其大城市需求频次较高。 但在实际经营中&#xff0c;会员服务企业面临着一些难题。对多数企业来讲&#xff0c;线上是不可或缺的…

地面沉降监测站可以监测什么?

随着城市化的飞速发展&#xff0c;地面沉降问题日益凸显。为了及时掌握土地沉降情况&#xff0c;确保人们安全&#xff0c;就需要借助地面沉降监测站的力量。 一、实时监测土地沉降 地面沉降监测站的核心功能是实时监测土地沉降。通过高精度GNSS位移监测站和先进的数据分析技术…

使用Java实现一个简单的贪吃蛇小游戏

一. 准备工作 首先获取贪吃蛇小游戏所需要的头部、身体、食物以及贪吃蛇标题等图片。 然后&#xff0c;创建贪吃蛇游戏的Java项目命名为snake_game&#xff0c;并在这个项目里创建一个文件夹命名为images&#xff0c;将图片素材导入文件夹。 再在src文件下创建两个包&#xff0…

性能压测工具:Locust详解

一、Locust介绍 开源性能测试工具https://www.locust.io/&#xff0c;基于Python的性能压测工具&#xff0c;使用Python代码来定义用户行为&#xff0c;模拟百万计的并发用户访问。每个测试用户的行为由您定义&#xff0c;并且通过Web UI实时监控聚集过程。 压力发生器作为性…

在Android上使用Jetpack Compose定制下拉刷新

在Android上使用Jetpack Compose定制下拉刷新 在Jetpack Compose中向LazyList添加下拉刷新非常简单。说真的&#xff0c;只需几行代码。然而&#xff0c;默认的外观和感觉并不是那么令人满意。我们希望做得更好一些&#xff0c;类似于iOS版本&#xff1a;当用户向下拉动列表时…

opencv差值法检测移动物体代码

void CrelaxMyFriendDlg::OnBnClickedOk() {hdc this->GetDC()->GetSafeHdc();// TODO: 在此添加控件通知处理程序代码string addrImg "c:/Users/actorsun/Pictures/";string addrVideo "c:/Users/actorsun/Videos/";string addr addrVideo &qu…

使用阿里云服务器学习Docker

首先我这里选择的系统服务器是CentOS 7.9 64位 因为centos系统里面的安装指令是&#xff1a;yum,而非apt-get. yum install docker -y试着建立一个容器&#xff1a; docker run -d -p 80:80 httpd启动docker的守护进程&#xff1a; sudo systemctl start docker 查看Docke…

基于springboot实现结合疫情情况的婚恋系统【项目源码】计算机毕业设计

基于springboot实现结合疫情情况的婚恋系统演示 SpringBoot框架 SpringBoot是一个全新开源的轻量级框架。基于Spring4.0设计&#xff0c;其不仅继承了Spring框架原来有的优秀特性&#xff0c;而且还通过简化配置文件来进一步简化了Spring应用的整个搭建以及开发过程。另外在原…

人机功能分配困难的原因之一

人机功能分配困难的原因之一是人类与机器都不能同时确定事实与价值的大小。事实是指客观存在的数据、信息和情况&#xff0c;而价值是指对这些事实的评判和喜好。人类和机器在确定功能分配时&#xff0c;都需要考虑到这两个方面。 首先&#xff0c;人类和机器在事实方面的认知能…

​ArcGIS Pro怎么生成山顶点

山顶点是指山脉、山丘或山脉系统中最高的地点&#xff0c;通常是山的最高峰&#xff0c;这是山地地貌中的最高点&#xff0c;往往是山脉的标志性特征之一&#xff0c;这里为大家介绍一下如何使用ArcGIS Pro获取山顶点&#xff0c;希望能对你有所帮助。 数据来源 本教程所使用…

axios1.5取消请求,中断请求的方法

给input的onchange绑定事件 引入axios,使用axios.CancelToken.source()创建标记 实例中,把cancelToken的值填上

Windows配置wxWidgets开发

1、编译 从官网下载wxWidgets源码,解压后进入build/msw目录,按自己安装的VS版本去选择sln打开,在VS的菜单拦找到【生成】菜单下的【批生成】菜单,点击进入, 点选【全选】然后点【生成】按钮。等上两、三个小时在项目目录的lib文件夹就可以看到生成的dll与lib目录,如下: …

【C语法学习】23 - strlen()函数

文章目录 1 函数原型2 参数3 返回值4 示例4.1 示例1 1 函数原型 strlen()&#xff1a;计算指针str所指向的字符串的长度&#xff0c;函数原型如下&#xff1a; size_t strlen(const char *str);2 参数 strlen()函数只有一个参数str&#xff1a; 参数str是指向待计算长度的字…

机器学习算法实战实战案例代码详解

文章目录 1.问题建模数据预处理 结果分析数据探索特征工程特征选择模型融合 1.问题建模 导入库 import numpy as np import pandas as pd from sklearn.model_selection import KFold from sklearn.metrics import mean_squared_error from sklearn.preprocessing import One…