https://github.com/flamego/binding
Package binding is a middleware that provides request data binding and validation for Flamego
https://github.com/flamego/binding
binding flamego go middleware validation
Last synced: 4 months ago
JSON representation
Package binding is a middleware that provides request data binding and validation for Flamego
- Host: GitHub
- URL: https://github.com/flamego/binding
- Owner: flamego
- License: mit
- Created: 2021-05-27T07:13:42.000Z (about 5 years ago)
- Default Branch: main
- Last Pushed: 2025-08-03T19:34:15.000Z (10 months ago)
- Last Synced: 2025-08-03T21:22:18.600Z (10 months ago)
- Topics: binding, flamego, go, middleware, validation
- Language: Go
- Homepage:
- Size: 77.1 KB
- Stars: 6
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# binding
[](https://github.com/flamego/binding/actions?query=workflow%3AGo)
[](https://pkg.go.dev/github.com/flamego/binding?tab=doc)
Package binding is a middleware that provides request data binding and validation for [Flamego](https://github.com/flamego/flamego).
## Installation
```zsh
go get github.com/flamego/binding
```
## Getting started
```go
package main
import (
"fmt"
"net/http"
"github.com/flamego/binding"
"github.com/flamego/flamego"
)
type address struct {
Street string `json:"street" validate:"required"`
City string `json:"city" validate:"required"`
Planet string `json:"planet" validate:"required"`
Phone string `json:"phone" validate:"required"`
}
type user struct {
FirstName string `json:"first_name" validate:"required"`
LastName string `json:"last_name" validate:"required"`
Age uint8 `json:"age" validate:"gte=0,lte=130"`
Email string `json:"email" validate:"required,email"`
Addresses []*address `json:"addresses" validate:"required,dive,required"`
}
func main() {
f := flamego.Classic()
f.Post("/", binding.JSON(user{}), func(c flamego.Context, form user, errs binding.Errors) {
if len(errs) > 0 {
c.ResponseWriter().WriteHeader(http.StatusBadRequest)
_, _ = c.ResponseWriter().Write([]byte(fmt.Sprintf("Oops! Error occurred: %v", errs[0].Err)))
return
}
fmt.Printf("Name: %s %s\n", form.FirstName, form.LastName)
})
f.Run()
}
```
## Getting help
- Read [documentation and examples](https://flamego.dev/middleware/binding.html).
- Please [file an issue](https://github.com/flamego/flamego/issues) or [start a discussion](https://github.com/flamego/flamego/discussions) on the [flamego/flamego](https://github.com/flamego/flamego) repository.
## License
This project is under the MIT License. See the [LICENSE](LICENSE) file for the full license text.