// curl -X POST http://localhost:8080 -d user=john
type Login struct {
User string `form:"user" binding:"required"`
}
app.Post("/", func(c *fiber.Ctx) {
var form Login
c.ShouldBind(&form);
...
})
We are working on something similar, it only supports xml & json bodies for now.
BodyParser: https://github.com/gofiber/fiber/blob/master/request.go#L200
It's not released in the documentation yet.
Until it also supports form-data we will document it as an "official" method.
I will keep this topic open until released.
@cheft
v1.6.0 will support 4 content-types https://fiber.wiki/context#bodyparser
type Person struct {
Name string `json:"name" xml:"name" form:"name"`
Pass string `json:"pass" xml:"pass" form:"pass"`
}
// curl -X POST -H "Content-Type: application/json"\
// --data '{"name":"john","pass":"doe"}' localhost:3000
// curl -X POST -H "Content-Type: application/xml"\
// --data '<Login><name>john</name><pass>doe</pass><Login>' localhost:3000
// curl -X POST -H "Content-Type: application/x-www-form-urlencoded"
// --data 'name=john&pass=doe' localhost:3000
// curl -v -F name=john -F pass=doe http://localhost:3000
func main() {
app := fiber.New()
app.Post("/", func(c *fiber.Ctx) {
var person Person
err := c.BodyParser(&person)
if err != nil {
// handle error
}
fmt.Println(person)
// Do something with person.Name or person.Pass
})
app.Listen(3000)
}
Most helpful comment
We are working on something similar, it only supports
xml&jsonbodies for now.BodyParser: https://github.com/gofiber/fiber/blob/master/request.go#L200It's not released in the documentation yet.
Until it also supports
form-datawe will document it as an "official" method.I will keep this topic open until released.