Page:
ZH_Group
Pages
Actions
Basicauth
Binding
Captcha
Compress
Context
Debug
Dispatch
ErrHandler
Events
Flash
Forms
Group
Handler
Home
Injection
Logger
Params
QuickStart
Recovery
Renders
Return
Router
Session
Static
Tango
Tpongo2
Xsrf
ZH_Actions
ZH_Basicauth
ZH_Binding
ZH_Captcha
ZH_Compress
ZH_Context
ZH_Debug
ZH_Dispatch
ZH_ErrHandler
ZH_Events
ZH_Flash
ZH_Forms
ZH_Group
ZH_HOME
ZH_Handler
ZH_Injection
ZH_Logger
ZH_Params
ZH_Recovery
ZH_Renders
ZH_Return
ZH_Router
ZH_Session
ZH_Static
ZH_Tango
ZH_Tpongo2
ZH_Xsrf
Table of Contents
This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
路由分组
Group 路由分组可以简化你的路由撰写:
有两种方法来使用Group
:
第一种,创建Group对象,通过Group方法传入
g := tango.NewGroup()
g.Get("/1", func() string {
return "/1"
})
g.Post("/2", func() string {
return "/2"
})
o := tango.Classic()
o.Group("/api", g)
以上代码执行后,访问 /api/1
将执行函数1, /api/2
将执行函数2.
第二种方法,直接传入带Group为参数的函数:
o := tango.Classic()
o.Group("/api", func(g *tango.Group) {
g.Get("/1", func() string {
return "/1"
})
g.Post("/2", func() string {
return "/2"
})
})
以上代码执行后,访问 /api/1
将执行函数1, /api/2
将执行函数2.
同时, Group
也支持子 Group
:
o := tango.Classic()
o.Group("/api", func(g *tango.Group) {
g.Group("/v1", func(cg *tango.Group) {
cg.Get("/1", func() string {
return "/1"
})
cg.Post("/2", func() string {
return "/2"
})
})
})
以上代码执行后,访问 /api/v1/1
将执行函数1, /api/v1/2
将执行函数2.
有时候,我们仅仅只是想逻辑上分组,而这些请求路径并没有共同的父路径,那么也是可以的,代码如下:
o := tango.Classic()
o.Group("", func(g *tango.Group) {
g.Get("/1", func() string {
return "/1"
})
})
o.Group("", func(g *tango.Group) {
g.Post("/2", func() string {
return "/2"
})
})
以上代码执行后,访问 /1
将执行函数1, /2
将执行函数2.
最后,我们也可以将中间件应用于Group之上,用group的Use方法。
o := tango.Classic()
o.Group("/api/v1", func(g *tango.Group) {
g.Use(handlers...)
g.Get("/1", func() string {
return "/1"
})
})