gin内置验证器使用

func TopicUrl(f1 validator.FieldLevel) bool {
return true //返回true表示验证成功
} func main(){
router:=gin.Default()
if v, ok := binding.Validator.Engine().(*validator.Validate); ok { //类型断言
v.RegisterValidation("topicurl", TopicUrl) //注册调用tag和自定义验证器
}
v1:=router.Group("/v1/topics")
{
v1.GET("/:topic_id",GetTopicDetail)
}
}
type Topic struct {
TopicID int `form:"id" json:"id"`
TopicTitle string `form:"title" json:"title" binding:"min=4,max=20"` //长度4到20之间
TopicShortTitle string `form:"stitle" json:"stitle" binding:"required,nefield=ToipcTitle"`//required非空,nfield不能等于TopicTitle字段
UserIP string `form:"ip" json:"ip" binding:"ipv4"`
TopicScore int `form:"score" json:"score" binding:"omitempty,gt=5"` //omitempty要么不传,传的话就要大于5
}
type Topic struct {
TopicID int `form:"id" json:"id"`
TopicTitle string `form:"title" json:"title" binding:"min=4,max=20"`
TopicShortTitle string `form:"stitle" json:"stitle" binding:"required,nefield=TopicTitle"`
UserIP string `form:"ip" json:"ip" binding:"ipv4"`
TopicScore int `form:"score" json:"score" binding:"omitempty,gt=5"`
TopicUrl string `form:"url" json:"url" binding:"topicurl"` //绑定自定义的topicurl验证器
} type Topics struct {
TopicList [] *Topic `form:"topiclist" json:"topiclist" binding:"gt=0,lt=3,dive"` //dive表示进入列表或数组里面的字段去验证,这里是验证上面的Topic,dive要写在后面,不然如果lt写在dive后面就是验证里面的数据的lt>3,而不是列表的lt>3
Size int `form:"size" json:"size"`
}

gin内置验证器使用的更多相关文章

  1. yii框架中验证器声明一组内置验证器可以使用短名称引用

    1.内置验证器的短名称分别有: boolean: yii\validators\BooleanValidator captcha: yii\captcha\CaptchaValidator compa ...

  2. Flex 内置验证器—验证用户输入

    今晚对于Flex中的Validator类(所有验证器的父类)测试一下 ---->其中常用的验证类有StringValidator,NumberValidator,DateValidator 测试 ...

  3. Struts2内置校验器——完整实例代码

    一.校验器的配置风格 1.字段校验器: <field name="被校验的字段"> <field-validator type="校验器名"& ...

  4. python基础语法16 面向对象3 组合,封装,访问限制机制,内置装饰器property

    组合: 夺命三问: 1.什么是组合? 组合指的是一个对象中,包含另一个或多个对象. 2.为什么要用组合? 减少代码的冗余. 3.如何使用组合? 耦合度: 耦: 莲藕 ---> 藕断丝连 - 耦合 ...

  5. Unity3D内置着色器

    Unity内部提供了一些可以直接使用的着色器,这些内置着色器包括以下6个方面: (1)Performance of Unity shaders 着色器的性能和两个方面有关:shader本身和rende ...

  6. python的内置下载器

    python有个内置下载器,有时候在内部提供文件下载很好用. 进入提供下载的目录 # ls abc.aaa chpw.py finance.py lsdir.py ping.py u2d-partia ...

  7. struts2内置拦截器和自定义拦截器详解(附源码)

    一.Struts2内置拦截器 Struts2中内置类许多的拦截器,它们提供了许多Struts2的核心功能和可选的高级特 性.这些内置的拦截器在struts-default.xml中配置.只有配置了拦截 ...

  8. struts2学习(11)struts2验证框架1.验证简介、内置验证

    一.Struts2验证简介: 二.struts2内置验证: 下面例子,需求是:为用户注册进行验证: com.cy.model.User.java: package com.cy.model; publ ...

  9. jQuery:validate内置验证的使用

    (1)required:true 必输字段(2)remote:"check.php" 使用ajax方法调用check.php验证输入值(3)email:true 必须输入正确格式的 ...

随机推荐

  1. T100 GR 报表常见知识点 (含套版制作)

    轉載至赫非域 > T100 GR 报表常见知识点 前端操作 bron1984 7小时前 5浏览 0评论 8.9.1 注意事项 字体: 如果字型没选对,会造成没设对字型的数据汇出 PDF 格式乱掉 ...

  2. 在O(1)的时间内删除链表节点

    题目: 在O(1)的时间内删除链表节点.给定链表的头指针和待删除的节点指针,定义一个函数在O(1)的时间内删除该节点. 剑指offer的思路,顿时觉得极妙.删除节点node1,先把其下一个节点node ...

  3. HttpClient参观记:.net core 2.2 对HttpClient到底做了神马

    .net core 于 10月17日发布了 ASP.NET Core 2.2.0 -preview3,在这个版本中,我看到了一个很让我惊喜的新特性:HTTP Client Performance Im ...

  4. ELK学习笔记之使用curl命令操作elasticsearch

    0x00 _cat系列 _cat系列提供了一系列查询elasticsearch集群状态的接口.你可以通过执行curl -XGET localhost:9200/_cat 1. 获取所有_cat系列的操 ...

  5. php中的for循环和js中的for循环

    php中的for循环 循环100个0 for ($i=0;$i<=100;$i++){ $pnums.='0'.","; } js中的for循环,循环31个相同的数.循环日期 ...

  6. python 基础(三)

    tuple: 元组被定义后无法被修改 count(): #count(obj) 统计obj在元组中出现的次数 tup = (1,2,3,4,5,6,5,5,5,5,5,5,5) print(tup.c ...

  7. visual studio 2015 开发时常见问题的解决方案

    1.visual studio 2015 用printf函数打印时来不及看结果窗口就关闭 方案一 在所写的代码后面,加上system("PAUSE"); 如下:

  8. Linux系统新手入门学习的四点建议

    随着计算机的普及.互联网的发展,原本黑客手中的攻城利器---Linux,渐渐进入到普通群众的视线里,让越来越多的人接触到Linux,并学习Linux进而投身到Linux运维工作中去.如果大家对Linu ...

  9. 面试总结之Data Science

    数据科学家面试如何准备? https://mp.weixin.qq.com/s/uFJ58az8WRyaXT2nibK02g 2020 年算法 / 数据分析面试数学考点梳理 https://mp.we ...

  10. django 自定义身份认证

    自定义身份认证: Django 自带的认证系统足够应付大多数情况,但你或许不打算使用现成的认证系统.定制自己的项目的权限系统需要了解哪些一些关键点,即Django中哪些部分是能够扩展或替换的.这个文档 ...