
王中阳Go
V1
2022/11/14阅读:25主题:橙心
【电商实战01】如何快速编写api层和model层?
上期回顾
上一篇文章介绍了:【准备工作00】用“抄作业”的思路带你快速上手电商实战项目,看完的朋友收获满满,昨天私信我的朋友不少。
没看的朋友建议先看上面的文章,再继续今天的内容。
对了,有位朋友建议我把这个电商实战系列做个编号,方便后面找资料。必须满足这个要求!也欢迎大家私信我多提宝贵建议。
准备工作篇我们就按程序员的习惯以0开头吧,作为00篇。
这篇作为01篇,欢迎朋友们关注我,日常催更。
适合人群:
有一定Go基础,想快速上手商业实战项目的伙伴
视频版:
【电商实战】gf工具怎么用?api层和model层怎么编写?
关键问题:
-
本文重点介绍 gf gen dao,是CLI中最频繁使用、也是框架设计的工程规范能否准确落地的关键命令。该命令用于生成dao数据访问对象、do数据转化模型及entity实例数据模型Go代码文件。 -
model中的模型分为两类:数据模型和业务模型。
-
数据模型:通过CLI工具自动生成 model/entity 目录文件,数据库的数据表都会生成到该目录下,这个目录下的文件对应的模型为数据模型。数据模型即与数据表一一对应的数据结构,开发者往往不需要去修改并且也不应该去修改,数据模型只有在数据表结构变更时通过CLI工具自动更新。数据模型由CLI工具生成及统一维护。 -
业务模型:业务模型即是与业务相关的数据结构,按需定义,例如service的输入输出数据结构定义、内部的一些数据结构定义等。业务模型由开发者根据业务需要自行定义维护,定义到model目录下。
-
注意事项,需要手动编译的数据库类型: gen dao命令涉及到数据访问相关代码生成时,默认支持常用的若干类型数据库。如果需要Oracle数据库类型支持,需要开发者自己修改源码文件后自行本地手动编译生成CLI工具随后安装,因为这两个数据库的驱动需要CGO支持,无法预编译生成给大家直接使用。 图片 -
更多细节问题建议大家直接查看官方文档,不作为我电商实战系列的重点:https://goframe.org/pages/viewpage.action?pageId=3673173
开发流程
我梳理了基于GoFrame框架最新V2版本的开发流程:
-
设计表结构,初始化项目,修改配置文件 -
使用gf gen dao 生成对应的 dao/do/model -
编写api层:定义业务侧数据结构,提供对外接口的输入/输出数据结构 -
编写model层:定义数据侧数据结构,提供对内的数据处理的输入/输出数据结构 -
编写logic层,自动生成service层代码。(通过配置goland File Watcher自动生成,也可以通过gf gen service手动执行脚本生成,建议前者) -
在service层代码生成RegisterXX()方法后,在对应的logic模块注册服务(每个模块只需要写一次) -
编写controller层,接收/解析用户输入的参数,调用service层的服务。 -
注册路由,对外暴露接口,比如这个项目是编写cmd.go文件。 -
在main.go中 加入一行 _ "project-name/internal/logic" (只需写一次) -
在main.go中加入一行 _ "github.com/gogf/gf/contrib/drivers/mysql/v2" (如果你使用的是mysql;只需写一次)
相关资料
一定会对你有帮助的资料:
-
电商实战项目的GitHub:https://github.com/wangzhongyang007/goframe-shop-v2
-
GoFrame V2真香,我是Get到了高内聚低耦合的点,你呢?https://juejin.cn/post/7156119733312438279
-
官方文档:https://goframe.org/pages/viewpage.action?pageId=57183756
-
快速开始:https://goframe.org/pages/viewpage.action?pageId=1114399
-
官方简单示例:https://github.com/gogf/gf-demo-user
-
官方完整示例:https://github.com/gogf/focus-single
作者介绍

王中阳Go
V1
专注Go语言的学习经验分享和简历优化