作者:网络小爬虫 | 来源:互联网 | 2023-05-18 00:37
本文主要分享【go语言函数详细讲解】,技术文章【GO语言-Gin中自定义控制器】为【y943711797】投稿,如果你遇到相关问题,本文相关知识或能到你。go语言函数详细讲解#自定义控制器当
本文主要分享【go语言函数详细讲解】,技术文章【GO语言-Gin 中自定义控制器】为【y943711797】投稿,如果你遇到相关问题,本文相关知识或能到你。
go语言函数详细讲解
# 自定义控制器 当我在写项目时,项目较大会造成代码冗余、繁杂、不宜看懂和后期维护,因此我们对控制器进行模块化分组。
## 控制器分组 一个较大的项目,一般可以分为后台管理、接口控制器、默认控制器等分组。项目的不同分类方法也不一样,应该按照实际。一般步骤
1、创建控制器文件夹(controller)2、在控制器文件夹中创造子文件夹(controller/admin/、controller/api、controller/default)3、将.go文件进行对应的分组 新建 controller/admin/BackUserController.go
go package admin import ( "net/http" "github.com/gin-gonic/gin" ) type BackUserController struct { } func (c BackUserController) Index(ctx *gin.Context) { ctx.String(http.StatusOK, "后台首页") } func (c BackUserController) adminPage(ctx *gin.Context) { ctx.String(http.StatusOK, "这是管理员首页") } func (c BackUserController) AddAdminPage(ctx *gin.Context) { ctx.String(http.StatusOK, "增加管理员") }
配置对应路由
当我们进行了对应的分组,所以路由也需要配置一下
go //对路由进行了分组 adminRouter := router.Group("/admin") //在GO语言中,首字母大写表示公开。admin表示文件夹 { adminRouter.GET("/admin/user", admin.BackUserController{}.Index) adminRouter.GET("/admin/add", admin.BackUserController{}.adminPage) adminRouter.GET("/admin/index", admin.BackUserController{}.AddAdminPage) }
其他路由的配置方法也是类似的
控制器的继承
为了降低代码的耦合性,减少代码量和代码冗余。 在GO语言中控制器继承是非常简单的,我们只需要将两个控制器结构体嵌套,就可以实现控制器的继承了。 比如 一个声明一个控制器A,控制器B当中有些方法可以使用到A中的方法,就可以将A放入B中。 代码示例 go type A struct { } //A中有判断成功可失败的两个方法 func (c A) Success(ctx *gin.Context) { ctx.String(http.StatusOK, "成功") } func (c A) Error(ctx *gin.Context) { ctx.String(http.StatusOK, "失败") } //将A结构体嵌套进B中 type B struct { A } //使用了A的方法 func (c B) Index(ctx *gin.Context) { c.Success(ctx) }
由此可见,GO语言中,gin框架的自定义控制器简单又实用,学起来吧!!!!
本文正在参加技术专题18期-聊聊Go语言框架
本文《GO语言-Gin 中自定义控制器》版权归y943711797所有,引用GO语言-Gin 中自定义控制器需遵循CC 4.0 BY-SA版权协议。