开源项目 `gookit/validate` 使用教程

开源项目 gookit/validate 使用教程

validate⚔ Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。项目地址:https://gitcode.com/gh_mirrors/va/validate

1. 项目的目录结构及介绍

gookit/validate
├── examples  // 示例代码目录
│   ├── basic_test.go
│   ├── custom_message_test.go
│   ├── custom_rule_test.go
│   ├── struct_validate_test.go
│   └── ...
├── locale  // 多语言支持目录
│   ├── en.go
│   ├── zh-CN.go
│   └── ...
├── testdata  // 测试数据目录
│   └── ...
├── validate  // 核心验证逻辑目录
│   ├── error.go
│   ├── filter.go
│   ├── rule.go
│   ├── validate.go
│   └── ...
├── .gitignore
├── .travis.yml
├── CHANGELOG.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── go.mod
├── go.sum
└── ...

目录结构介绍

  • examples: 包含项目的示例代码,展示了如何使用不同的验证功能。
  • locale: 提供多语言支持的错误消息。
  • testdata: 包含测试数据,用于单元测试。
  • validate: 核心验证逻辑的实现,包括错误处理、过滤器、规则定义等。
  • .gitignore: Git 忽略文件配置。
  • .travis.yml: Travis CI 配置文件。
  • CHANGELOG.md: 项目更新日志。
  • CONTRIBUTING.md: 贡献指南。
  • LICENSE: 项目许可证。
  • README.md: 项目介绍和使用说明。
  • go.modgo.sum: Go 模块依赖管理文件。

2. 项目的启动文件介绍

项目的启动文件通常是指入口文件,但在 gookit/validate 项目中,没有明确的“启动文件”,因为这是一个库项目,而不是一个可执行的应用程序。用户在使用时,会根据需要在自己的代码中引入并使用 validate 包。

例如,一个基本的验证示例可能如下:

package main

import (
    "fmt"
    "github.com/gookit/validate"
)

func main() {
    v := validate.Struct(MyStruct{})
    if v.Validate() {
        // 验证通过
    } else {
        // 验证失败,输出错误信息
        fmt.Println(v.Errors)
    }
}

type MyStruct struct {
    Name  string `validate:"required|minLen:5"`
    Email string `validate:"required|email"`
}

3. 项目的配置文件介绍

gookit/validate 项目中,没有传统意义上的配置文件,因为所有的配置和规则定义都是通过代码实现的。用户可以根据需要在代码中定义验证规则和错误消息。

例如,自定义错误消息的示例如下:

package main

import (
    "fmt"
    "github.com/gookit/validate"
)

func main() {
    v := validate.Map(map[string]interface{}{
        "name":  "",
        "email": "invalid-email",
    })

    v.AddRule("name", "required")
    v.AddRule("email", "email")

    v.AddMessages(map[string]string{
        "name.required": "The name field is required.",
        "email.email":   "The email field must be a valid email.",
    })

    if v.Validate() {
        // 验证通过
    } else {
        // 验证失败,输出错误信息
        fmt.Println(v.Errors)
    }
}

通过这种方式,用户可以在代码中灵活地定义和配置验证规则和错误消息。

validate⚔ Go package for data validation and filtering. support Map, Struct, Form data. Go通用的数据验证与过滤库,使用简单,内置大部分常用验证、过滤器,支持自定义验证器、自定义消息、字段翻译。项目地址:https://gitcode.com/gh_mirrors/va/validate

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陶淑菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值