组路由func (b *Baa) Group(pattern string, f func(), h ...HandlerFunc)
组路由,常常被同事问道,这个功能太好用了,你是怎么想到这样的设计,我说,我抄的,我抄的 macaron,就是这么直白。
组路由,顾名思义,用来处理一组路由的需求,可以设定统一的前缀,统一的前置方法。
使用示例:
package main
import (
"fmt"
"github.com/go-baa/baa"
)
func main() {
app := baa.New()
app.Group("/group", func() {
app.Get("/", func(c *baa.Context) {
c.String(200, "我是组的首页")
})
app.Group("/user", func() {
app.Get("/", func(c *baa.Context) {
c.String(200, "我是组的用户")
})
app.Get("/:id", func(c *baa.Context) {
c.String(200, "in group, user id: "+c.Param("id"))
})
})
app.Get("/:gid", func(c *baa.Context) {
c.String(200, "in group, group id: "+c.Param("gid"))
})
}, func(c *baa.Context) {
// 我是组内的前置检测,过不了我这关休想访问组内的资源
})
app.Run("1323")
}
测试:
curl http://127.0.0.1:1323/group/
curl http://127.0.0.1:1323/group/user/
curl http://127.0.0.1:1323/group/user/101
curl http://127.0.0.1:1323/group/111