gorevelhttp-parameters

Taking GET parameters as func arguments or using c.Params.Get() in Golang Revel


In the Golang Revel web framework, what's the difference between setting function arguments as parameters (for both GET and POST)

func (c Machine) TestConnection(addr string, port int, username, password string) revel.Result

versus retrieving HTTP parameters from within the function

addr := c.Params.Get("addr")
port, _ := strconv.Atoi(c.Params.Get("port"))
username := c.Params.Get("username")
password := c.Params.Get("password")

Also, if I use the function arguments method (the first method), can I still validate the HTTP parameters with c.Validation.Required("addr").Ok?


Solution

  • You can use whichever you prefer. However, defining them as method parameters lets the framework take care of parsing the string from the request to the type that you need. So it's offered as convenience.