@ApiModel("会员参数")
@Data
public class MemberDTO implements Serializable {private static final long serialVersionUID = -1142880759496749876L;/*** 会员号*/@ApiModelProperty(value = "会员号", required = true)@NotBlank(groups = {Insert.class, Update.class, Delete.class}, message = "会员号不能为空")@Pattern(groups = {Insert.class, Update.class, Delete.class}, regexp = REG_EXP_WAYBILL_NO, message = "请填写正确的会员号")private String memberNo;/*** 公司编码*/@ApiModelProperty(value = "公司编码", required = true)@NotBlank(groups = {Insert.class, Update.class}, message = "公司编码不能为空")@Length(groups = {Insert.class, Update.class}, min = 2, max = 20, message = "公司编码长度必须在{min}和{max}之间")private String companyCode;/*** 入会单位,1-餐饮;2-交通;3-住宿*/@ApiModelProperty(value = "单位类型(1-餐饮;2-交通;3-住宿)", required = true)@NotEmpty(groups = {Update.class, Insert.class}, message = "单位类型不能为空")@Size(groups = {Update.class, Insert.class}, min = 1, max = 20, message = "单位类型个数必须在{min}和{max}之间")private List<String> companyType;/*** 会员储值(单位:元)*/@ApiModelProperty(value = "会员储值(单位:元)", required = true)@NotNull(groups = {Update.class, Insert.class}, message = "会员储值不能为空")private BigDecimal memberStoredValue;/*** 会员类型,1-个人、0-企业, integer元素指定数字的最大整数位数,fraction元素指定数字的最大小数位数*/@NotNull(groups = {Update.class, Insert.class}, message = "请填写会员类型")@Min(groups = {Update.class, Insert.class}, value = 0, message = "请填写正确的会员类型")@Max(groups = {Update.class, Insert.class}, value = 1, message = "请填写正确的会员类型")@ApiModelProperty(value = "会员类型(1-个人;0-企业)", required = true)private Integer memberType;/*** 会员名称*/@NotBlank(groups = {Update.class, Insert.class}, message = "请填写会员名称")@Pattern(groups = {Update.class, Insert.class}, regexp = REG_FULL_NAME, message = "请填写正确的会员名称")@ApiModelProperty(value = "会员名称", required = true)private String memberName;/*** 证件号*/@NotBlank(groups = {Update.class, Insert.class}, message = "请填写证件号")@ApiModelProperty(value = "证件号", required = true)@Pattern(groups = {Update.class, Insert.class}, regexp = REG_ID_NO_CREDIT_CODE, message = "请填写正确的证件号")private String certificateNo;/*** 电子邮箱*/@NotBlank(groups = {Update.class, Insert.class}, message = "请填写电子邮箱")@Email(groups = {Update.class, Insert.class}, regexp = EMAIL, message = "请填写正确的电子邮箱")@ApiModelProperty(value = "电子邮箱", required = true)private String email;/*** 手机号*/@NotBlank(groups = {Update.class, Insert.class}, message = "请填写手机号")@ApiModelProperty(value = "手机号", required = true)@Pattern(groups = {Update.class, Insert.class}, regexp = MOBILE, message = "请填写正确的手机号")private String mobilePhone;/*** 发票类型,01-普票 02-专票 03-无需开票*/@ApiModelProperty(value = "发票类型(01-普票 02-专票 03-无需开票)")@NotBlank(groups = {Update.class, Insert.class}, message = "请填写发票类型")@Pattern(groups = {Update.class, Insert.class}, regexp = "^01|02|03$", message = "请填写正确的发票类型")private String invoiceType;
}

@NotNull            不是null
@NotEmpty        不是null、不是""、size>0
@NotBlank          不是null、trim后长度大于0
@Null                  是null
@Size(min=0, max=Integer.MAX_VALUE)    字符串长度、集合size
@Positive                     数字>0
@PositiveOrZero          数字>=0
@Negative                    数字<0
@NegativeOrZero         数字<=0
@Min(value=0L)            数字>=min.value
@Max(value=0L)            数字<=max.value
@Range(min=0L, max=Long.MAX_VALUE)    range.min<=数字<=range.max
@DecimalMin(value="")             数字>=decimalMin.value
@DecimalMax(value="")            数字<=decimalMax.value
@Past                                时间在当前时间之前
@PastOrPresent               时间在当前时间之前 或者等于此时
@Future                            时间在当前时间之后
@FutureOrPresent            时间在当前时间之后 或者等于此时
@Pattern(regexp="", flags={})    匹配正则表达式
@Email @Email(regexp=".*", flags={})    匹配邮箱格式
@Digts(integer=0, fraction=0)            
    必须是数字类型,且满足整数位数<=digits.integer, 浮点位数<=digits.fraction
@AssertTrue      必须是true
@AssertFalse    必须是false

利用validation对Java接口入参进行基础校验相关推荐

  1. Java接口入参和出参规范建议

    把最近项目中遇到的问题跟大家分享下:最近做了一个项目,后端接口写好后和pc端vue联调完毕,业务还需要和App端[ios,andro]对接,问题来了,后端接口中的入参和出参都是Java数据类型[Dat ...

  2. 接口入参形式_某小公司RESTful、共用接口、前后端分离、接口约定的实践

    点击上方"后端技术精选",选择"置顶公众号" 技术文章第一时间送达! 作者:邵磊 juejin.im/post/59eafab36fb9a045076eccc3 ...

  3. springboot接口入参下划线转驼峰以及返回参数驼峰转下划线实现

    转自:springboot接口入参下划线转驼峰以及返回参数驼峰转下划线实现 - 李东平|一线码农 - 博客园 (cnblogs.com) 1.背景 在实际开发中,通常来说java里面是使用驼峰的命名规 ...

  4. 接口入参形式_花椒测试平台 接口篇

    背景 先来说说花椒测试平台的由来: 目的1,降低接口测试对测试人员代码能力的要求.测试人员只需要知道接口的url,请求参数,以什么样的格式传个服务端,接口的响应数据里需要验证哪个字段的值即可进行测试, ...

  5. Java校验入参之正则表达式校验特殊字符

    Java校验入参之正则表达式校验特殊字符 前言 实现流程 总结 参考链接 前言 场景描述 第三方调用接口时,有些特殊字符不允许传参,可能影响存储.或者加解密等问题,下面以斜杠"/" ...

  6. python requests库api_Python+requests库发送接口入参为xml格式的接口请求

    一)接口入参准备: 入参: <?xml version="1.0" encoding = "UTF-8"?> duoceshi 123456 DwO ...

  7. 【Lilishop商城】No4-6.业务逻辑的代码开发,涉及到:接口入参、出参开发逻辑,及POJO的各种总结

     仅涉及后端,全部目录看顶部专栏,代码.文档.接口路径在: [Lilishop商城]记录一下B2B2C商城系统学习笔记~_清晨敲代码的博客-CSDN博客 全篇会结合业务介绍重点设计逻辑,其中重点包括接 ...

  8. SpringBoot2 参数管理实践,入参出参与校验

    一.参数管理 在编程系统中,为了能写出良好的代码,会根据是各种设计模式.原则.约束等去规范代码,从而提高代码的可读性.复用性.可修改,实际上个人觉得,如果写出的代码很好,即别人修改也无法破坏原作者的思 ...

  9. 根据接口入参不同返回不同对象集合的方法

    最近要写一个外部调用的webservice接口,入参和出参都是xml格式,根据不同的type查询不同的集合返回,代码如下: 首先配置webservice接口的xml文件 然后写接口类 然后是实现类 实 ...

最新文章

  1. C++编程优化——让你的代码飞起来
  2. 深入 理解 Statement 和 PreparedStatement
  3. 爬取小说1--高并发
  4. 35. 通过实现一个序列加密的功能,熟悉对二维空间与一维空间的操作。
  5. 6大设计原则之接口隔离原则
  6. 机器学习 | 特征缩放
  7. python xlrd 读取excel
  8. 自动控制原理学习笔记--反馈控制系统的动态模型
  9. 雨落江满泛涟漪 尘拂心海滤情音 相思入云寄清风
  10. 深入理解微信二维码扫码登录的原理
  11. bzoj1236 KPSUM bzoj2900 好玩的数字游戏
  12. 如何在Windows中创建新用户?
  13. UI设计师是一群什么样的人?
  14. 对DHCP客户端创建黑名单或白名单
  15. 在linux下使用rpm命令安装软件
  16. Python:字符串中的方法--strip()
  17. 疫情反弹,传统企业如何做好线上营销获客?
  18. 全新英特尔®凌动™处理器E3900系列:支持下一代智能互联的物联网设备 —— 这个全新处理器系列把计算能力迁移到更靠近传感器的位置,从而减轻把所有处理工作推向数据中心的需求...
  19. 微信小程序项目实例——幸运大转盘
  20. 最新版快手去水印原理及源码,简单的原理与面临的挑战

热门文章

  1. Arcgis中的标注操作(一)
  2. 软件工程学习笔记(七)~编写高质量代码
  3. Java通过JNI调用C++动态链接库dll,并打在jar包内 ——JNA-JNI(一)
  4. [笔记]Windows核心编程《十九》DLL基础
  5. C语言蓝桥杯刷题:成绩统计
  6. web浏览器博物馆_Web-Based Interactive Storytelling (2)
  7. R语言——【练习】R语言期末期中考试基础题目
  8. 码云与与GitHUB的对比及使用码云使用细节
  9. [zz from newsmth]王大牛的Memory Model白话系列(2)
  10. 五行Python自动换你的电脑桌面壁纸(内附源码和exe)