swagger设置字段required必填

2023-11-13

swagger注解中需要设置请求参数的字段是必须填写的还是非必须的。我们需要添加下面的配置。只需要在对象的字段中增加下面的代码

@ApiModelProperty(value = "自建应用的corpid", required = true)

显示效果如下

        

详细的代码如下

请求的controller代码

package my.controller;

import my.bean.*;
import my.common.BaseController;
import my.configuration.MyRedissonConfig;
import my.service.*;
import my.util.MsgUtil;
import my.util.MyConstants;
import my.util.WxUtil;
import my.wechataes.WXBizMsgCrypt;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore;

import javax.annotation.Resource;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Map;


@EnableAsync
@RestController
@Api(value = "MyAppController",tags = {"自建应用服务"})
@RequestMapping("/myApp")
@Slf4j
public class MyAppController extends BaseController {

    @Autowired
    private MyAppService myAppService;

    @ApiOperation(value = "自建应用-推送图文消息给用户",
            notes = "逻辑如下:"+ MyConstants.SWAGGER2_FOX_BR_TAG +
                    MyConstants.SWAGGER2_FOX_BR_TAG)
    @RequestMapping(value = "/sendNews", method = RequestMethod.POST)
    @ResponseBody
    public String sendNews(@Validated @RequestBody MyAppSendNewsReqBean vo) {
        String code = MyConstants.SUCCESS;
        try {
            log.info("myApp sendNews vo={}",vo);
            myAppService.sendNews(vo);
        } catch (Exception e) {
            code = MyConstants.FAILURE;
            e.printStackTrace();
        }
        return MsgUtil.outJson(code);
    }

}

请求参数对象

package my.bean;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;

import javax.validation.constraints.NotNull;
import java.io.Serializable;


@ApiModel(
        description = "图文消息对象"
)
@Data
@Slf4j
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class MyAppSendNewsReqBean implements Serializable {

    @ApiModelProperty(value = "企微自建应用,接收消息的用户ID,多个接收者用‘|’分隔,最多支持1000个)。@all=全员发送", required = true)
    @NotNull(message = "userId不能为空")
    private String userId;

    @ApiModelProperty(value = "自建应用的corpid", required = true)
    @NotNull(message = "corpid不能为空")
    private String corpid;

    @ApiModelProperty(value = "自建应用的corpsecret", required = true)
    @NotNull(message = "corpsecret不能为空")
    private String corpsecret;

    @ApiModelProperty(value = "自建应用的agentId", required = true)
    @NotNull(message = "agentId不能为空")
    private Integer agentId;

    @ApiModelProperty(value = "图文消息的标题", required = true)
    @NotNull(message = "title不能为空")
    private String title;

    @ApiModelProperty(value = "图文消息的描述")
    private String description;

    @ApiModelProperty(value = "点击图片跳转的网址,网址必须是备案的网址,否则会有风险提示")
    private String url;

    @ApiModelProperty(value = "图片地址", required = true)
    @NotNull(message = "picUrl不能为空")
    private String picUrl;

}

启动项目,访问swagger,访问地址如下

log.info("swagger api=http://ip:port/项目名称/swagger-ui.html");
log.info("swagger api=http://ip:port/项目名称/doc.html");

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

swagger设置字段required必填 的相关文章

  • Java中的整数除法[重复]

    这个问题在这里已经有答案了 这感觉像是一个愚蠢的问题 但我在 Java 文档中找不到答案 如果我声明两个 int 然后将它们相除 到底发生了什么 他们是否转换为floats doubles首先 划分 然后投射回integer 或者除法是作为
  • 如何替换引号之间出现的任何单词

    我需要能够替换所有出现的单词 and 仅当它出现在单引号之间时 例如 将字符串中的 and 替换为 XXX This and that with you and me and others and not her and him 结果是 T
  • 如何将TabLayout与Recyclerview同步?

    我有一个TabLayout with Recyclerview这样当单击选项卡时Recyclerview滚动到特定位置 我也想要相反的过程 这样当Recyclerview滚动到特定位置 然后该特定选项卡会突出显示 例如 如果有 4 个选项卡
  • 这两个绑定声明与 Google Guice 有什么区别?

    有什么区别 bind FooImpl class in Scopes SINGLETON bind Foo class to FooImpl class and bind Foo class to FooImpl class in Scop
  • 当线程无法访问所有已用堆时查找 Java 内存泄漏

    我正在研究基于 Java 的大型系统中潜在的内存泄漏 或至少是内存浪费 JVM 运行时的最大堆大小为 5 GB 2 3GB 堆使用量是应用程序的预期基准 可能会有更高的峰值 在我正在调查的过载场景中 堆被填满 使用 Eclipse Memo
  • 如何在 swagger 规范中表示十进制浮点数?

    我想在我的 api 文档中用 2 位小数表示小数点 用 1 位小数表示 我正在使用 swagger 2 0 规范中是否有内置定义的类型或任何其他 圆形 参数 或者我唯一的选择是使用 x 扩展 OpenAPI fka Swagger 规范使用
  • Java switch case 抛出 nullPointer 异常

    我有一个枚举声明如下 public enum Status REQ URL1 NOT URL2 GET URL3 String getURL Status String getURL this getURL getURL 我班上的一个领域
  • Spring Security“拒绝执行来自...的脚本”

    我正在 HTML 文件 thymeleaf 模板 中使用 Spring Security 和 Bootstrap 构建 Spring MVC 应用程序 Spring Security部分基于Spring Guide对于春季安全 http s
  • 当我在选择 0 索引的情况下删除和添加时,Swing JList 冻结

    这是一个示例 您按下一个按钮 jList1 会重新填充从 a1 到 a1000 的项目 variable private List
  • 没有 if 条件(动态查询)或乱码的Where子句中的PreparedStatement“为null”

    假设我有这样的查询 SELECT FROM CUSTOMERS WHERE CUSTOMER ID 使用PreparedStatement 我可以绑定变量 pstmt setString 1 custID 但是 我无法通过以下绑定获得正确的
  • TestNG 与 DataProvider 并行执行

    我有一个从数据提供者接收数据的测试 我希望此测试与数据提供者的不同值并行运行 我尝试了这样的方法 public class IndependentTest Test dataProvider dp1 threadPoolSize 3 inv
  • JAXB 和 complexType 与其元素之一共享名称会生成不正确的代码

    我有这个 xsd 它有点糟糕 但我必须使用它来避免更改我正在编写的 servlet 的接口 请求 响应接口的 xsd 包含以下行
  • Spring MVC - 从 JSP 提交对象

    我有一个显示客户列表的 JSP ArrayList searchResults 我希望能够选择其中之一 并将其 提交给 Spring MVC 控制器 但是 我似乎无法传递所选对象 只能传递它的属性 例如 customerId 我真的需要传递
  • 从文件执行db语句

    我在我的应用程序中使用嵌入式 Apache derby 我有一个名为的 SQL 脚本创建的数据库 sql创建数据库中的所有表并用初始数据填充它 例如 SET SCHEMA APP CREATE TABLE study study id bi
  • 什么时候使用弱引用? [复制]

    这个问题在这里已经有答案了 我了解什么是 Java WeakReference 我想知道的是它通常用于解决哪种具体问题 有没有包含它们的模式 WeakReference and SoftReference当您想保留某些东西以备再次需要时使用
  • 谷歌gson LinkedTreeMap类转换为myclass

    我知道这个问题以前已经被问过 由于我对java和android的新手技能 我一个多星期都无法解决这个问题 我和我的一位朋友正在开发一个 Android 项目 其中有一些类似的事情 最奇怪的部分是 只有当我从 Google Play 商店下载
  • Java 中的引用变量里面有什么?

    我们知道对象引用变量保存表示访问对象的方式的位 它不保存对象本身 但保存诸如指针或地址之类的东西 我正在阅读 Head First Java 第 2 版 一书 书中写道 第 3 章第 54 页 在 Java 中我们并不真正知道什么是 在引用
  • GWT 和身份验证

    保护 GWT Tomcat 应用程序执行身份验证和授权的最佳策略是什么 有两种基本策略 确保入口点安全 确保远程服务的安全 确保入口点安全 最简单的方法是使用常规 Web 应用程序安全工具限制对 GWT 生成的 html js 文件的访问
  • 如何使用 GWT 2.4 在服务器端动态创建 UI

    我正在尝试使用 Google Web Toolkit v2 4 创建用户界面 由于多种原因 我需要在运行时指定服务器上接口的内容 我的意思不仅仅是按钮需要动态标签等 而是整个 UI 需要在运行时创建 我的大部分 UI 都可以指定为直接的 H
  • Oracle 的商业 Hotspot JVM 相对于 OpenJDK 有哪些性能优势?

    正如这个问题中所描述的 OpenJDK 与 Java HotspotVM https stackoverflow com q 44335605 1593077 Oracle 的商业 Hotspot JVM 本质上是 OpenJDK 加上一些

随机推荐

  • 利用Python实现几种常见排序算法

    一 排序算法概览 插入排序 直接插入排序 二分法插入排序 选择排序 直接选择排序 堆排序 交换排序 冒泡排序 快速排序 归并排序 二 代码实现 1 直接插入排序 最简单直接的一种方式 序列在排序中可分为左边已排序部分和右边未排序部分 每次从
  • 拷贝构造函数与深拷贝和浅拷贝

    拷贝构造函数是一种特殊的构造函数 函数的名称必须和类名称一致 它必须的一个参数是本类型的一个引用变量 作用就是用来复制对象 在使用这个对象的实例来初始化这个对象的一个新的实例 类中可以存在多个拷贝构造函数 拷贝构造函数的调用时机 当函数的参
  • Java中的代理(一)

    一 概念 代理 Proxy 是一种设计模式 提供了对目标对象另外的访问方式 即通过代理对象访问目标对象 这样做的好处是 可以在目标对象实现的基础上 增强额外的功能操作 即扩展目标对象的功能 重要的编程思想 不要随意去修改别人已经写好的代码或
  • Java中成员变量、局部变量、全局变量、静态变量存在位置及初始化

    根据定义变量位置的不同 可以将变量分为成员变量和局部变量 成员变量是 定义在一个类的变量 类中方法外 局部变量是定义在一个方法内的变量 方法中 成员变量分为 静态属性 随类的存在而存在 是在类加载的初始化 非静态属性 随实例的属性存在而存在
  • vsnprintf用法解析

    int vsnprintf char s size t n const char format va list arg 描述 将格式化数据从可变参数列表写入大小缓冲区 如果在printf上使用格式 则使用相同的文本组成字符串 但使用由arg
  • 深度解析转置卷积,理解转置卷积的原理

    参考文章 转置卷积 Transposed Convolution 太阳花的小绿豆的博客 CSDN博客 转置卷积 抽丝剥茧 带你理解转置卷积 反卷积 史丹利复合田的博客 CSDN博客 逆卷积和转置卷积 参考视频 转置卷积 transposed
  • 【Unity3D】回合制游戏

    回合制游戏一直在游戏史 至少是在中国的游戏历史上扮演很重要的角色 从仙剑到梦幻 这类游戏深受玩家喜爱 那么在Unity3D中怎么实现呢 下面用一个比较简单Unity3D的一对一回合制游戏来说明这个问题 其实也不难 关键是理清各个处理关系 如
  • Bootstarp学习教程(12) 导航组件

    导航 Bootstrap中可用的导航有相似的标记 用基类 nav开头 这是相似的部分 改变修饰类可以改变样式 标签页 注意 nav tabs类需要 nav基类
  • Mathematica学习笔记

    Mathematica学习笔记 mathematica 使用总结 1 基础知识 1 从1开始编号输入 Line 1 2 函数的另一种表达形式 1 2 3 4 5 6 7 8 MatrixForm 3 跳出死循环 如不小心进入死循环 可以采用
  • 软件设计师---数据库

    数据库 出题形式 概念数据模型 概念数据模型定义 概念数据模型常用术语 结构数据模型 关系模型 真题 三级模式结构 真题 两级映像 真题 关系模型的基本术语 关系 关系模式等 五个码 键 完整性约束 关系模式的定义 关系模式的组成 关系数据
  • 基于Android+OpenCV+CNN+Keras的智能手语数字实时翻译——深度学习算法应用(含Python、ipynb工程源码)+数据集(三)

    目录 前言 总体设计 系统整体结构图 系统流程图 运行环境 模块实现 1 数据预处理 2 数据增强 3 模型构建 4 模型训练及保存 1 模型训练 2 模型保存 5 模型评估 相关其它博客 工程源代码下载 其它资料下载 前言 本项目依赖于K
  • 简单洗牌(打乱52个随机生成的数字)

    代码如下 include
  • 操作系统学习(六)进程的基本知识

    一 程序和进程 程序 1 指令序列 2 程序段存放指令序列 数据段存放程序运行中的产生的数据 例如定义的变量 进程 1 程序的一次动态执行 进程的动态性 完成程序的并发执行 2 进程实体 进程映像 3 进程是进程实体的运行过程 是系统进行资
  • 基于卷积神经网络的脱机手写签名识别(Pytorch,Opencv,CNN)

    文章目录 前言 resnet18模型结构 resnet18实现代码 数据集 训练模型 项目结构 前言 最近做了一个手写签名识别的项目 即判断签名的真伪 使用的深度学习框架为Pytorch Opencv等等 数据集中共包含17个人的签名 使用
  • Double保留指定小数位数的五种方法

    方法一 方法一 public void test1 double d 0 3456789 BigDecimal bd new BigDecimal d double test1 bd setScale 2 BigDecimal ROUND
  • hyperledger fabric各版本更新内容

    fabric各版本文档 fabric各版本更新内容 fabric 最新版本 fabric2 5更新内容 fabric2 4更新内容 fabric2 3更新内容 fabric2 2更新内容 fabric2 1更新内容 fabric2 0更新内
  • Ansible中vars(变量)定义

    1 变量使用的原因 playbook的编写是使用yml的语法 虽然该语法规则较为简单 但是 同其他语法相同该语法也有变量 循环等机制的使用 变量的使用就是为了提高我们所写剧本的复用性 当某个参数更改时 直接更改变量的赋值 无需更改剧本中的每
  • 最近大热的 chatGPT 会取代你的工作吗?

    ChatGPT 由于其高效的自然语言处理能力 它最容易取代的领域可能是 文本分类 ChatGPT 可以用作文本分类系统 对文本进行分类 聊天机器人 ChatGPT 可以制作聊天机器人 提供人性化的交互体验 文本生成 ChatGPT 可以生成
  • 小米生态企业强力推荐的开源免费SRM采购管理平台功能介绍

    本文节选自Odoo亚太金牌服务机构 开源智造 所编写的 ERP真的免费不花钱 Odoo应用指南 如需获取完整的知识内容 请至开源智造官网免费获取 感谢网友一键三连 点赞 转发 收藏 您的支持是我们最大的前进动力 概述 采购工作起源于采购请求
  • swagger设置字段required必填

    swagger注解中需要设置请求参数的字段是必须填写的还是非必须的 我们需要添加下面的配置 只需要在对象的字段中增加下面的代码 ApiModelProperty value 自建应用的corpid required true 显示效果如下