先看层级目录,分别是常规的api(controller)目录,service目录,router目录:
以api目录为例,
api/v1/mall/enter,其中包含一个apiGroup结构体,apiGroup结构体中存具体的api结构体,且添加本包下可使用的service层的service结构体:
api/v1/mall/mall_goods,如果有新的功能则创建新的文件夹,新的结构体并注册到apiGroup中:
api/v1/enter,将apiGroup暴露出去,供router层使用:
下图为router层调用暴露的apiGroup:
router层将routerGroup暴露给初始化gin.Engine时:
最后,service层暴露给最开始的api层,返回其gorm操作后的结果
所以新添加功能总的流程是先确定是不是已有Group下的操作,不是则在三个层级中新建gourp,如果是已有的则按照service到api到group的顺序进行编写。