validgo

package module
v1.0.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 15, 2026 License: MIT Imports: 2 Imported by: 0

README

validgo

Go Version License Status

Laravel-style validation for Go Fiber.

validgo helps simplify request parsing and validation in Go by wrapping go-playground/validator with a cleaner developer experience.

Features

  • Request body parsing
  • Automatic validation
  • Automatic JSON validation response
  • Generic typed request parsing
  • Clean Fiber integration
  • Built on top of go-playground/validator

Installation

go get github.com/MRizki28/validgo

Quick Start

Request Struct

package main

type RegisterRequest struct {
    Name     string `json:"name" validate:"required"`
    Email    string `json:"email" validate:"required,email"`
    Password string `json:"password" validate:"required,min=6"`
}

Handler

package main

import (
    "github.com/MRizki28/validgo"
    "github.com/gofiber/fiber/v2"
)

func Register(c *fiber.Ctx) error {

    body, err := validgo.Parse[RegisterRequest](c)

    if err != nil {
        return err
    }

    return c.JSON(fiber.Map{
        "status": true,
        "data":   body,
    })
}

Route

app.Post("/register", Register)

Validation Error Response

{
  "status": false,
  "message": "validation failed",
  "errors": {
    "email": [
      "email must be a valid email"
    ],
    "name": [
      "name is required"
    ]
  }
}

Invalid Body Response

{
  "status": false,
  "message": "invalid request body"
}

Example

go run examples/fiber/main.go

Testing

Run tests:

go test -v ./...

Roadmap

  • Custom validation messages
  • Localization support
  • Database unique validation
  • Snake case field formatter
  • Gin support
  • Echo support
  • Query validation
  • Form-data validation

License

MIT


Author

Muhammad Rizki

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Parse

func Parse[T any](c *fiber.Ctx) (T, error)

Types

type ValidationError

type ValidationError struct {
	Errors interface{}
}

func (*ValidationError) Error

func (e *ValidationError) Error() string

Directories

Path Synopsis
examples
fiber command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL