Permalink
Switch branches/tags
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
68 lines (51 sloc) 1.21 KB
package main
import (
"github.com/kataras/iris"
"github.com/kataras/iris/hero"
)
func main() {
app := iris.New()
// 1
helloHandler := hero.Handler(hello)
app.Get("/{to:string}", helloHandler)
// 2
hero.Register(&myTestService{
prefix: "Service: Hello",
})
helloServiceHandler := hero.Handler(helloService)
app.Get("/service/{to:string}", helloServiceHandler)
// 3
hero.Register(func(ctx iris.Context) (form LoginForm) {
// it binds the "form" with a
// x-www-form-urlencoded form data and returns it.
ctx.ReadForm(&form)
return
})
loginHandler := hero.Handler(login)
app.Post("/login", loginHandler)
// http://localhost:8080/your_name
// http://localhost:8080/service/your_name
app.Run(iris.Addr(":8080"))
}
func hello(to string) string {
return "Hello " + to
}
type Service interface {
SayHello(to string) string
}
type myTestService struct {
prefix string
}
func (s *myTestService) SayHello(to string) string {
return s.prefix + " " + to
}
func helloService(to string, service Service) string {
return service.SayHello(to)
}
type LoginForm struct {
Username string `form:"username"`
Password string `form:"password"`
}
func login(form LoginForm) string {
return "Hello " + form.Username
}