diff --git a/gin.go b/gin.go index a7e83140..54b4e59f 100644 --- a/gin.go +++ b/gin.go @@ -94,7 +94,7 @@ func New() *Engine { engine := &Engine{ RouterGroup: RouterGroup{ Handlers: nil, - BasePath: "/", + basePath: "/", root: true, }, RedirectTrailingSlash: true, diff --git a/gin_test.go b/gin_test.go index 8657d1ad..3cc60f5d 100644 --- a/gin_test.go +++ b/gin_test.go @@ -23,7 +23,7 @@ func init() { func TestCreateEngine(t *testing.T) { router := New() - assert.Equal(t, "/", router.BasePath) + assert.Equal(t, "/", router.basePath) assert.Equal(t, router.engine, router) assert.Empty(t, router.Handlers) } diff --git a/routergroup.go b/routergroup.go index 3fa3b8cf..c91c4675 100644 --- a/routergroup.go +++ b/routergroup.go @@ -39,7 +39,7 @@ type ( // and an array of handlers (middlewares) RouterGroup struct { Handlers HandlersChain - BasePath string + basePath string engine *Engine root bool } @@ -58,11 +58,15 @@ func (group *RouterGroup) Use(middlewares ...HandlerFunc) IRoutes { func (group *RouterGroup) Group(relativePath string, handlers ...HandlerFunc) *RouterGroup { return &RouterGroup{ Handlers: group.combineHandlers(handlers), - BasePath: group.calculateAbsolutePath(relativePath), + basePath: group.calculateAbsolutePath(relativePath), engine: group.engine, } } +func (group *RouterGroup) BasePath() string { + return group.basePath +} + func (group *RouterGroup) handle(httpMethod, relativePath string, handlers HandlersChain) IRoutes { absolutePath := group.calculateAbsolutePath(relativePath) handlers = group.combineHandlers(handlers) @@ -200,7 +204,7 @@ func (group *RouterGroup) combineHandlers(handlers HandlersChain) HandlersChain } func (group *RouterGroup) calculateAbsolutePath(relativePath string) string { - return joinPaths(group.BasePath, relativePath) + return joinPaths(group.basePath, relativePath) } func (group *RouterGroup) returnObj() IRoutes { diff --git a/routergroup_test.go b/routergroup_test.go index 39bdb80f..b0589b52 100644 --- a/routergroup_test.go +++ b/routergroup_test.go @@ -20,14 +20,14 @@ func TestRouterGroupBasic(t *testing.T) { group.Use(func(c *Context) {}) assert.Len(t, group.Handlers, 2) - assert.Equal(t, group.BasePath, "/hola") + assert.Equal(t, group.BasePath(), "/hola") assert.Equal(t, group.engine, router) group2 := group.Group("manu") group2.Use(func(c *Context) {}, func(c *Context) {}) assert.Len(t, group2.Handlers, 4) - assert.Equal(t, group2.BasePath, "/hola/manu") + assert.Equal(t, group2.BasePath(), "/hola/manu") assert.Equal(t, group2.engine, router) } @@ -44,10 +44,10 @@ func TestRouterGroupBasicHandle(t *testing.T) { func performRequestInGroup(t *testing.T, method string) { router := New() v1 := router.Group("v1", func(c *Context) {}) - assert.Equal(t, v1.BasePath, "/v1") + assert.Equal(t, v1.BasePath(), "/v1") login := v1.Group("/login/", func(c *Context) {}, func(c *Context) {}) - assert.Equal(t, login.BasePath, "/v1/login/") + assert.Equal(t, login.BasePath(), "/v1/login/") handler := func(c *Context) { c.String(400, "the method was %s and index %d", c.Request.Method, c.index)