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: 9 months 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 7 years ago)
- Default Branch: master
- Last Pushed: 2021-01-27T19:09:25.000Z (over 5 years ago)
- Last Synced: 2024-04-09T22:01:34.984Z (about 2 years 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"] = notification
return c.RenderJSON(data)
}
```