Gin请求参数校验

本文详细介绍了如何在Gin框架中使用validator库进行请求参数校验,包括数字、字符串长度、存在性、关联及数组、Map的校验规则。同时,讲解了 Gin 中的数据绑定和校验结果获取方法,提供示例代码帮助理解。
摘要由CSDN通过智能技术生成

gin参数校验使用的是 validator库,因此本文的内容同样适用于使用validator来做参数校验的地方

校验规则

完整的校验规则可参考https://godoc.org/github.com/go-playground/validator,下面分享常用的校验规则规则:

  • 数字值限制

    注:如果限制之间存在冲突,如 eq=10,ne=10,则会根据先后顺序,后面的会覆盖前面的定义,以后面定义的为准;校验内容为eq=10,ne=10,只会生效ne=10,如果存在冲突,所有校验规则均符合此规律。

    • 限制范围
      max=10 # 最大值为10,即小于等于10
      min=10 # 最小值为10,即大于等于10
      gt=10  # 大于 10
      gte=10 # 大于等于10
      lt=10  # 小于10
      lte=10 # 小于等于10
      
    • 限制值
      eq=10 # 等于10
      ne=10 # 不等于10
      oneof=1 2 3 # 值只能是1、2 或 3
      len=3 # 限制位数为3位数
      
  • 字符串长度限制

    • 限制长度范围

      max=10 # 最大长度为10
      min=10 # 最小长度为10
      gt=10  # 长度大于10
      lt=10  # 长度小于10
      gte=10 # 长度大于等于10
      let=10 # 长度小于等于10
      
    • 限制值内容

      eq=aaa # 值为aaa
      ne=aaa # 值不能为aaa
      oneof=a b c # 枚举,只能为a、b 或 c
      len=3 # 字符长度为3
      
  • 存在性校验

    注:这里需要特别注意的是,这里是否存在是根据0值与非0值判断的,如果字段中传了对应的0值,也会被认为是不存在的

    • 必选

      required # 必须
      
    • 可选

      omitempty,xxx=xxx # 可选,如果存在,则继续向后校验规则xxx=xxx,如果不存在,则xxx=xxx不生效,但是如果omitempty之前存在校验规则,则前面的校验规则还是生效的,如 gte=-1,omitempty,len=3,则gte=-1规则始终生效,而len=3只有在值不为0时生效。
      
    • 关联校验

      required_with=AAA # 当AAA存在时,此字段也必须存在
      required_with_all=AAA BBB CCC  # 当AAA BBB CCC 都存在时,此字段必须存在
      required_without=AAA # 当AAA不存在时,此字段必须存在
      required_without_all=
  • 9
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值