1 Star 0 Fork 41

fhaoquan/lessgo

forked from andeyalee/lessgo 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
克隆/下载
group.go 1.28 KB
一键复制 编辑 原始数据 按行查看 历史
henrylee2cn 提交于 2016-05-23 02:45 . 代码大量优化
package lessgo
type (
// Group is a set of sub-routes for a specified route. It can be used for inner
// routes that share a common middlware or functionality that should be separate
// from the parent app instance while still inheriting from it.
Group struct {
prefix string
chainNodes []MiddlewareFunc
app *App
}
)
// Group creates a new sub-group with prefix and optional sub-group-level middleware.
func (g *Group) group(prefix string, m ...MiddlewareFunc) *Group {
m = append(g.chainNodes, m...)
return g.app.group(joinpath(g.prefix, prefix), m...)
}
// Use implements `App#Use()` for sub-routes within the Group.
func (g *Group) use(m ...MiddlewareFunc) {
g.chainNodes = append(g.chainNodes, m...)
}
// match implements `App#match()` for sub-routes within the Group.
func (g *Group) match(methods []string, path string, handler HandlerFunc, middleware ...MiddlewareFunc) {
for _, method := range methods {
g.add(method, path, handler, middleware...)
}
}
func (g *Group) add(methods, path string, handler HandlerFunc, middleware ...MiddlewareFunc) {
path = joinpath(g.prefix, path)
middleware = append(g.chainNodes, middleware...)
switch methods {
case WS:
g.app.webSocket(path, handler, middleware...)
default:
g.app.add(methods, path, handler, middleware...)
}
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Go
1
https://gitee.com/fhq/lessgo.git
git@gitee.com:fhq/lessgo.git
fhq
lessgo
lessgo
master

搜索帮助