validgo

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