Based on the Hi example for Iris I want to create an application that can parse a request like
wget -qO- "http://localhost:8080/hi?name=John"
and respond with Hi John!
.
Here's my handler code:
func hi(ctx *iris.Context) {
name := ctx.ParamDecoded("name")
ctx.Writef("Hi %s!", name)
}
This just answers Hi !
- how can I make it answer Hi John!
Important: There is controversy about whether to use Iris at all as the author apparently deleted the history multiple times, which makes it hard to use as a stable API. Please read Why you should not use Iris for your Go and form your own opinion
Just use ctx.FormValue(...)
instead of ctx.ParamDecoded()
:
func hi(ctx *iris.Context) {
name := ctx.FormValue("name")
ctx.Writef("Hi %s!", name)
}
If there is no such form value (i.e. query parameter) present, this will just return an empty string.
If you want to test whether a form value is actually present, you can use ctx.FormValues()
to obtain a map. This is a little bit more complex, however, because the map contains a list of string values for each key:
func hi(ctx *iris.Context) {
form := ctx.FormValues()
names, ok := form["name"]
name := ""
if !ok { // No name parameter
name = "<unknown>"
} else { // At least one name
name = names[0]
}
ctx.Writef("Hi %s!", name)
}