【电商实战 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;只需写一次)
一起学习
欢迎和我们一起学 Go,坚持打卡,互相监督。
可以在 InfoQ 私信我。或者通过下面的方式联系我,一起学习。
版权声明: 本文为 InfoQ 作者【王中阳Go】的原创文章。
原文链接:【http://xie.infoq.cn/article/f9d8c6269fe4b21d477efade0】。文章转载请联系作者。
评论 (1 条评论)