当项目比较大时有必要对控制器进行分组

新建控制器

package admin

import "github.com/gin-gonic/gin"

type UserController struct {
    BaseController
}

func (con UserController) Index(c *gin.Context) {
    //c.String(200, "用户列表")
    con.success(c)
}
func (con UserController) Edit(c *gin.Context) {
    c.String(200, "用户列表-edit")
}
func (con UserController) Add(c *gin.Context) {
    c.String(200, "用户列表-add")
}
package admin

import "github.com/gin-gonic/gin"

type ArticleController struct {
    BaseController
}

func (con ArticleController) Index(c *gin.Context) {
    //c.String(200, "文章列表")
    con.success(c)
}
func (con ArticleController) Edit(c *gin.Context) {
    c.String(200, "文章列表-edit")
}
func (con ArticleController) Add(c *gin.Context) {
    c.String(200, "文章列表-add")
}

配置路由

package routers

import (
    "gindemo06/controllers/admin"

    "github.com/gin-gonic/gin"
)

func AdminRoutersInit(r *gin.Engine) {
    adminRouters := r.Group("/admin")
    {
        adminRouters.GET("/user", admin.UserController{}.Index)
        adminRouters.GET("/user/edit", admin.UserController{}.Edit)
        adminRouters.GET("/user/add", admin.UserController{}.Add)
        adminRouters.GET("/article", admin.ArticleController{}.Index)
        adminRouters.GET("/article/add", admin.ArticleController{}.Add)
        adminRouters.GET("/article/delete", admin.ArticleController{}.Edit)
    }
}

控制器的继承

package admin

import "github.com/gin-gonic/gin"

type BaseController struct{}

func (con BaseController) success(c *gin.Context) {
    c.String(200, "成功")
}

func (con BaseController) error(c *gin.Context) {
    c.String(200, "失败")
}