Go语言框架路由Controller控制器设计思路gin路由根据控制器目录分层生成路由地址

Controller设计好处

框架设计用controller分请求路由层级,应用从app目录开始对应请求url路由地址,这样设计师方便开发时候通过请求地址层级快速定位接口方法对应的代码位置。

例如api接口请求路径为:​​http://localhost:8110/​​business/user/account/getUserdata ,从地址我们可以指定这个接口的代码在 app目录下的business目录下user目录下account下文件名为account.go里函数名为GetUserdata。这样其他同事维护您的代码也能快速找的代码位置。不像其他Go框架路由手动配置产生路由与文件目录不对应,相关改一个接口找半天。

Controller设计思路

开发应用app目录下有个总controller.go控制器(应用控制器),app目录下(模块)每个文件夹如果需要路由自动加载就要有个controller.go控制器(模块控制器),然后再加载搭配总控制器中去。app下的目录文件夹加载自己目录下目录文件夹。模块是指大业务应用分类,比如后台分:admin后台管理、business业务后台管理、手机app接口、微信小程序等我们分别添加admin、admin、phoneapi、wxapp。详情在下面介绍。

1.应用控制器

   在应用业务目录app下添加一个总的控制器(controller.go)来引入app下模块的路径,例如引入admin、business模块。controller.go代码如下

  

package controller

/**
* app路由引入口《引入模块控制器》
*
* 请把您使用包用 _ "gofly/app/home/XX"导入您编写的包 自动生成路由
* 不需要使用的模块则注释掉 例如home模块暂时用不到就注释掉,这样不占用资源,使用是取消注释即可。
* 路由规则:包路径“home/article” + 包中结构体“Cate”转小写+方法名(首字母转小写_ "gofly/app/business/datacenter"
 */
import (
    _ "gofly/app/admin"
    _ "gofly/app/business"
)

这样admin和business下的控制器import的路径文件就会加载到路由中。

2.模块控制器

模块也分成多个业务,比如business业务后台可分文章article、用户user、测试test等时就在business目录下的controller.go添加article、user、test 路径目录,结果如下图:

 

business目录下的controller.go代码如下:

package controller

/**
* 引入控制器
* 请把您使用包用 _ "gofly/app/home/XX"导入您编写的包 自动生成路由
* 不是使用则注释掉
* 路由规则:包路径“home/article” + 包中结构体“Cate”转小写+方法名(首字母转小写    _ "gofly/app/business/datacenter"
 即:http://xx.com/home/article/cate/get_list
*/
import (
    _ "gofly/app/business/article"
    // _ "gofly/app/business/test"
    _ "gofly/app/business/user"
)

如果不需要让路由加载test,则注释获取删除即可上面带// _ "gofly/app/business/test" 代码已经用//注释,路由就不会去加载test内部文件的方法。或者删除掉test文件及控制器路径。不删除代码是方便下次启用。

然后article,user这些业务块就不用添加controller.go控制器了,除非还需要问下分模块。业务块目录下就添加.go文件编辑业务代码了,系统自动加载业务块内的方法到路由中,无需手动导入路由。具体如何开发业务代码 请到下面这篇了解:

基于gin框架根据文件目录层级和文件名自动生成路由_gin 自动生成路由-CSDN博客文章浏览阅读1k次,点赞18次,收藏29次。本文主要介绍如何及,比如新增一个添加文章分类(在cate.go直接添加一个func函数-单个接口)、和新增一个文章评论的功能(新添加一个.go文件多个接口),我们用两个例子说明这个中情况开发。_gin 自动生成路由https://blog.csdn.net/qq_23731311/article/details/136329656?spm=1001.2014.3001.5501

相关推荐

  1. 前端根据权限生成三级

    2024-03-13 01:26:04       28 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-13 01:26:04       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-13 01:26:04       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-13 01:26:04       82 阅读
  4. Python语言-面向对象

    2024-03-13 01:26:04       91 阅读

热门阅读

  1. MYSQL环境搭建面试题

    2024-03-13 01:26:04       34 阅读
  2. PTA L1-009 N个数求和(C++)

    2024-03-13 01:26:04       39 阅读
  3. url中可以包含@吗

    2024-03-13 01:26:04       39 阅读
  4. docker学习笔记——对数据卷的一些简单命令

    2024-03-13 01:26:04       43 阅读
  5. Activiti工作流引擎:流程实例名称模糊查询

    2024-03-13 01:26:04       45 阅读
  6. react hook:useMemo

    2024-03-13 01:26:04       44 阅读
  7. linux设置开机启动慎用nohup

    2024-03-13 01:26:04       43 阅读
  8. PyTorch学习笔记(三)

    2024-03-13 01:26:04       39 阅读