https://github.com/reisraff/goinput
A good input layer for GO
https://github.com/reisraff/goinput
filter filtering go golang library rest validation validator
Last synced: 4 days ago
JSON representation
A good input layer for GO
- Host: GitHub
- URL: https://github.com/reisraff/goinput
- Owner: reisraff
- License: mit
- Created: 2019-02-15T13:45:39.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-01-27T19:09:25.000Z (over 4 years ago)
- Last Synced: 2024-04-09T22:01:34.984Z (over 1 year ago)
- Topics: filter, filtering, go, golang, library, rest, validation, validator
- Language: Go
- Homepage:
- Size: 33.2 KB
- Stars: 2
- Watchers: 4
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GoInput
```go
import "github.com/reisraff/goinput/input"
import "github.com/revel/revel"type Notification struct {
Text string
Url string
}func (self *Notification) SetText(text string) {
self.Text = text
}func (self *Notification) SetUrl(url string) {
self.Url = url
}func NotificationCreateDefine(self input.InputResult) {
object := self.Add("notification", Notification{}, nil)object.Add("text", "string", nil)
object.Add(
"url",
"string",
map[string]interface{}{
"required": false,
}
)
}func (c NotificationController) Create() revel.Result {
handler := input.InputHandler{}
handler.Configure(input.DefaultTypeHandlerFactory())data := make(map[string]interface{})
c.Params.BindJSON(&data)result := handler.Bind(data, NotificationCreateDefine)
if ! result.IsValid() {
data = make(map[string]interface{})
data["errors"] = result.GetErrorsAsString()return c.RenderJSON(data)
}notification := result.GetData("notification").(*Notification)
data = make(map[string]interface{})
data["data"] = notificationreturn c.RenderJSON(data)
}
```