博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字节跳动开源Go结构体标签表达式解释器,成请求参数校验的杀手锏
阅读量:6989 次
发布时间:2019-06-27

本文共 610 字,大约阅读时间需要 2 分钟。

go-tagexpr 是一个由字节跳动开源的 Golang 结构体标签表达式解释器。它主要应用于各种场景的请求参数校验,且性能高效,成为参数校验的杀手锏。

主要特性:

  • 支持各种常用运算符
  • 支持访问数组、切片、字典的成员
  • 支持访问当前结构中任意字段
  • 支持访问嵌套字段、非导出字段等
  • 内置 len、sprintf、regexp 函数
  • 支持单表达式与多表达式两种定义模式
  • 提供了参数校验子包

看一个参数校验的小例子:

package validator_testimport (    "fmt"    "github.com/bytedance/go-tagexpr/validator")func Example() {    var vd = validator.New("vd")    type InfoRequest struct {        Name string `vd:"($!='Alice'||(Age)$==18) && regexp('\\w')"`        Age  int    `vd:"$>0"`    }    info := &InfoRequest{Name: "Alice", Age: 18}    fmt.Println(vd.Validate(info) == nil)    // Output:    // true}

更多语法详情,请转到Github源码仓库:

转载地址:http://ibzvl.baihongyu.com/

你可能感兴趣的文章
robocopy 遷移共享文件夾
查看>>
adb
查看>>
SD9031: 各浏览器对 Range 接口的实现存在差异
查看>>
IE10中,文本框长度需要注意
查看>>
SSL与TLS的区别以及介绍
查看>>
Power point 2010 打开加速方法
查看>>
最近在研究 PLC机器 的 MODBUS RTU 通讯协议与C# 交互
查看>>
我的友情链接
查看>>
PHP删除目录和目录内所有的下级目录、文件代码
查看>>
使用PHP GD库为一张图片创建多个水印,缩放..
查看>>
Linux释放内存
查看>>
博文收集
查看>>
redis问题汇总
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
电脑办公小技巧
查看>>
python2.7安装django报UnicodeEncodeError错误
查看>>
计算机应用专业的学生应该掌握的IT技能
查看>>
MyEclipse 编写java mail 时遇到 java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream...
查看>>
nginx同一端口监听多个域名和同时监听http,https
查看>>