Categorygithub.com/typerandom/validator
repositorypackage
0.0.0-20150707153608-15e4d81a0a8a
Repository: https://github.com/typerandom/validator.git
Documentation: pkg.go.dev

# Packages

No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author

# README

Validator GoDoc Build Status

A powerful validation library for Go.

Features

  • Tag syntax that allows for typed parameters and multiple validation sets.
  • Validation of deeply nested structures.
  • Extensive list of built-in validators.
  • Localized error messages.
  • Custom validators.

Install

Just use go get.

go get gopkg.in/typerandom/validator.v0

And then just import the package into your own code.

import (
    "gopkg.in/typerandom/validator.v0"
)

Getting started

  1. Add validate tags to the structure that you want to validate. See Tagging and Validators for more details.
  2. Call errors := validator.Validate(objectWithValidateTags).
  3. Call errors.Any() to check if there are any errors.
  4. If there are errors, handle them. Or use errors.PrintAll() to print them to console (for debugging).
  5. Questions? Check out the wiki.

Example

package main

import (
	"gopkg.in/typerandom/validator.v0"
)

type User struct {
	Name  string `validate:"min(5),max(16)"`
	Email string `validate:"regexp(´^[a-z0-9-]*@[a-z0-9.]*\\.com$´)"`
	Age   int    `validate:"min(18),max(65)"`
}

func main() {
	user := &User{
		Name:  "Bob",
		Email: "bobby@tables",
		Age:   17,
	}

	if errs := validator.Validate(user); errs.Any() {
		errs.PrintAll()
		return
	}

	print("Hey " + user.Name + "!")
}

Running the example above would output:

Name cannot be shorter than 5 characters.
Email must match pattern '^[a-z0-9-]*@[a-z0-9.]*\.com$'.
Age cannot be less than 18.

Licensing

Validator is licensed under the MIT license. See LICENSE for the full license text.