王中阳Go

V1

2022/11/14阅读:25主题:橙心

【电商实战01】如何快速编写api层和model层?

上期回顾

上一篇文章介绍了:【准备工作00】用“抄作业”的思路带你快速上手电商实战项目,看完的朋友收获满满,昨天私信我的朋友不少。

没看的朋友建议先看上面的文章,再继续今天的内容。

对了,有位朋友建议我把这个电商实战系列做个编号,方便后面找资料。必须满足这个要求!也欢迎大家私信我多提宝贵建议。

准备工作篇我们就按程序员的习惯以0开头吧,作为00篇。

这篇作为01篇,欢迎朋友们关注我,日常催更。

适合人群:

有一定Go基础,想快速上手商业实战项目的伙伴

视频版:

【电商实战】gf工具怎么用?api层和model层怎么编写?

关键问题:

  1. 本文重点介绍 gf gen dao,是CLI中最频繁使用、也是框架设计的工程规范能否准确落地的关键命令。该命令用于生成dao数据访问对象、do数据转化模型及entity实例数据模型Go代码文件。
  2. model中的模型分为两类:数据模型和业务模型。
  • 数据模型:通过CLI工具自动生成 model/entity 目录文件,数据库的数据表都会生成到该目录下,这个目录下的文件对应的模型为数据模型。数据模型即与数据表一一对应的数据结构,开发者往往不需要去修改并且也不应该去修改,数据模型只有在数据表结构变更时通过CLI工具自动更新。数据模型由CLI工具生成及统一维护。
  • 业务模型:业务模型即是与业务相关的数据结构,按需定义,例如service的输入输出数据结构定义、内部的一些数据结构定义等。业务模型由开发者根据业务需要自行定义维护,定义到model目录下。
  1. 注意事项,需要手动编译的数据库类型: gen dao命令涉及到数据访问相关代码生成时,默认支持常用的若干类型数据库。如果需要Oracle数据库类型支持,需要开发者自己修改源码文件后自行本地手动编译生成CLI工具随后安装,因为这两个数据库的驱动需要CGO支持,无法预编译生成给大家直接使用。 图片
  2. 更多细节问题建议大家直接查看官方文档,不作为我电商实战系列的重点:https://goframe.org/pages/viewpage.action?pageId=3673173

开发流程

我梳理了基于GoFrame框架最新V2版本的开发流程:

  1. 设计表结构,初始化项目,修改配置文件
  2. 使用gf gen dao 生成对应的 dao/do/model
  3. 编写api层:定义业务侧数据结构,提供对外接口的输入/输出数据结构
  4. 编写model层:定义数据侧数据结构,提供对内的数据处理的输入/输出数据结构
  5. 编写logic层,自动生成service层代码。(通过配置goland File Watcher自动生成,也可以通过gf gen service手动执行脚本生成,建议前者)
  6. 在service层代码生成RegisterXX()方法后,在对应的logic模块注册服务(每个模块只需要写一次)
  7. 编写controller层,接收/解析用户输入的参数,调用service层的服务。
  8. 注册路由,对外暴露接口,比如这个项目是编写cmd.go文件。
  9. 在main.go中 加入一行 _ "project-name/internal/logic" (只需写一次)
  10. 在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

分类:

后端

标签:

Golang

作者介绍

王中阳Go
V1

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