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

简中互联网上就没一个靠谱的答案,最终翻到了 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,呵呵……

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

RabbitMQ实战

文章目录 1、简介2、MQ优点缺点MQ的应用场景AMQP工作原理市面上常见的MQ 3、Linux安装RabbitMQ3.1 版本对应3.2 安装socat3.3 下载 Erlang/OTP、安装、验证 erlang方法一&#xff1a;1. 下载2. 将下载的Erlang服务上传到服务器上面3. 解压4. 编译erlang的依赖环境5. 安装Erlang…

Pensoul AI大更新!图生图功能日趋完善

Pensoul AI上线刚半个月&#xff0c;程序猿们已经做好了二期更新内容。 让我们一起来看看具体有哪些内容吧~ PensoulAI一期上线内容中&#xff0c;“文生图”功能已经比较完善&#xff0c; PensoulAI二期主要是针对图生图功能进行优化。 首先&#xff0c;新增加了线稿渲染功…

2023亚太杯数学建模C题思路

文章目录 0 赛题思路1 竞赛信息2 竞赛时间3 建模常见问题类型3.1 分类问题3.2 优化问题3.3 预测问题3.4 评价问题 4 建模资料5 最后 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 竞赛信息 2023年第十三…

修改django开发环境runserver命令默认的端口

runserver默认8000端口 虽然python manage.py runserver 8080 可以指定端口&#xff0c;但不想每次runserver都添加8080这个参数 可以通过修改manage.py进行修改&#xff0c;只需要加三行&#xff1a; from django.core.management.commands.runserver import Command as Ru…

ESP32 BLE特征值示例

键盘特征值初始化示例 void BleKeyboard::begin(void) {BLEDevice::init(deviceName);BLEServer* pServer BLEDevice::createServer();pServer->setCallbacks(this);hid new BLEHIDDevice(pServer);inputKeyboard hid->inputReport(KEYBOARD_ID); // <-- input R…

Vue基于html2canvas和jspdf生成pdf文件,解决jspdf中文乱码及自动换行等问题

在做项目时有这么一个需求&#xff0c;需要将当前页面指定区域的内容导出pdf到本地。借助了两个插件分别是html2canvas.js和pdf.js来实现。使用过程中遇到的问题及解决方法 解决一些问题&#xff1a; 导出按A4纸大小排列预留页面边距的问题内容过多自动分页的问题直接使用jsp…

Mistral 7B 比Llama 2更好的开源大模型 (一)

Mistral 7B 简介 Mistral 7B Mistral 7B 是一个 7.3B 参数模型: 在所有基准测试中优于 Llama 2 13B在许多基准测试中优于 Llama 1 34B接近 CodeLlama 7B 的代码性能,同时保持擅长英语任务使用分组查询注意力 (GQA) 加快推理速度使用滑动窗口注意力 (SWA) 以更低的成本处…

加一000

题目链接 加一 题目描述 注意点 0 < digits[i] < 9 解答思路 根据数学思想&#xff0c;对最后一位进行加一&#xff0c;任意位置进一会对下一位有影响当digits中所有元素都为9时&#xff0c;整个数字都会加一位&#xff0c;也就是10000…&#xff0c;需要特殊考虑 …

淘宝API接口成为淘宝商家及企业ERP系统不可或缺的重要因素

API全称为Application Programming Interface&#xff0c;中文是应用程序编程接口。它其实是一些预先定义的函数&#xff0c;目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力&#xff0c;而又无需访问源码&#xff0c;或理解内部工作机制的细节。 那如果…

30岁之前透支,30岁之后还债。

前言 看到不少私信问我为啥没有更新了&#xff0c;我没有一一回复&#xff0c;实在是身体抱恙&#xff0c;心情沉重&#xff0c;加上应付于工作&#xff0c;周旋于家庭&#xff0c;自然挤压了自我空间。 今天思来想去&#xff0c;重新执键&#xff0c;决定久违地又一次写点分…

低代码、零代码开源与不开源:区别解析

在如今日益发展的数字时代&#xff0c;程序开发变得越来越重要。为了实现日益提高的业务需求&#xff0c;开发人员必须能够以更高效、更灵活的方式构建和交货软件解决方案。低代码和零代码开源是近几年流行的两种开发方法。本文将探讨它们与传统非开源程序开发的差别&#xff0…

NSSCTF web刷题记录5

文章目录 [HZNUCTF 2023 preliminary]ezlogin[MoeCTF 2021]地狱通讯[NSSRound#7 Team]0o0[ISITDTU 2019]EasyPHP[极客大挑战 2020]greatphp[安洵杯 2020]Validator [HZNUCTF 2023 preliminary]ezlogin 考点&#xff1a;时间盲注 打开题目&#xff0c;在源码出得到hint 注入点很…

【陈老板赠书活动 - 18期】- 计算机考研精炼1000题

陈老老老板&#x1f9b8; &#x1f468;‍&#x1f4bb;本文专栏&#xff1a;赠书活动专栏&#xff08;为大家争取的福利&#xff0c;免费送书&#xff09; &#x1f468;‍&#x1f4bb;本文简述&#xff1a;生活就像海洋,只有意志坚强的人,才能到达彼岸。 &#x1f468;‍&am…

微服务 Spring Cloud 6,用了这么多年Docker容器,殊不知你还有这么多弯弯绕

目录 一、神之容器 Docker二、Docker架构图1、Docker Client 客户端2、Docker Daemon 守护进程3、镜像&#xff08;Image&#xff09;4、Docker Driver 驱动模块5、Docker Graph内部数据库6、Docker Libcontainer函数库7、Docker Container 容器实例 三、Docker安装1、卸载Dock…

双绞线认证测试方法?四种模型

第一种&#xff0c;永久链路测试模块&#xff0c;Permanent Link Certfication 。其标准严格于常用的通道测试模式。 第二种&#xff0c;跳线模块测试&#xff0c;Pathcord Certification.单体测试。 第三种&#xff0c;通道认证&#xff0c;CHANNEL CERTIFICATION. 第四种&am…

【LeetCode:307. 区域和检索 - 数组可修改 | 树状数组 or 线段树】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

【KCC@南京】KCC南京数字经济-开源行

一场数字经济与开源的视听盛宴&#xff0c;即将于11月26日&#xff0c;在南京举办。本次参与活动的有&#xff1a; 庄表伟&#xff08;开源社理事执行长、天工开物开源基金会执行副秘书长&#xff09;、林旅强Richard&#xff08;开源社联合创始人、前华为开源专家&#xff09;…

javaSE的发展历史以及openjdk和oracleJdk

1 JavaSE 的发展历史 1.1 Java 语言的介绍 SUN 公司在 1991 年成立了一个称为绿色计划&#xff08;Green Project&#xff09;的项目&#xff0c;由 James Gosling&#xff08;高斯林&#xff09;博士领导&#xff0c;绿色计划的目的是开发一种能够在各种消费性电子产品&…

计算机毕设 推荐系统设计与实现 协同过滤推荐算法

文章目录 0 前言简介常见推荐算法协同过滤分解矩阵聚类深度学习 协同过滤原理系统设计示例代码(py) 系统展示系统界面推荐效果 最后 0 前言 &#x1f525; 这两年开始毕业设计和毕业答辩的要求和难度不断提升&#xff0c;传统的毕设题目缺少创新和亮点&#xff0c;往往达不到毕…

Mybatis框架——mybatis是什么

第一&#xff0c;mybatis是一个持久层的框架&#xff0c;它支持自定义SQL&#xff0c;存储过程以及高级映射。 mybatis几乎代替了所有的JDBC代码以及设置参数和获取结果集的工作&#xff0c;可以通过简单的XML或者注解来配置和映射原始类型、接口和Java POJO&#xff08;Plain…