Go语言对于初学者是有一定的门槛的,在学习完Go语言基础后,就感觉不知道下一步该如何学下去,本文以GoFrame最新框架来讲解一下如何开发一个项目。
首先我们要了解一下通过GoFrame框架脚手架自动生成的各个目录和文件的含义,我建议大家能吃透相关概念,比如数据模型、领域对象、业务接口,理解项目工程化,这样对于CV工程师来说,提高自身能力非常重要!
dao层用于数据访问,这是一层抽象对象,用于和底层数据库交互,仅包含最基础的 CURD 方法
model层是结构模型,是数据结构管理模块,管理数据实体对象,以及输入与输出数据结构定义。
model中的do是领域对象,用于dao数据操作中业务模型与实例模型转换,由工具维护,用户不能修改。
model中的entity是数据模型,数据模型是模型与数据集合的一对一关系,由工具维护,用户不能修改。
首先,我们通过gf init 项目名 -u,来新建一个项目,然后我们在mysql中设计好表结构,在hack/config.yaml里面配置好数据库的参数,通过 gf gen dao生成模型,生成的模型位置在dao/do/model下面。
我们继续定义接收和返回结构体,实现api层。接收结构体一般放在api/request下,返回结构体一般放在api/response/下面,也有分前后端目录的,视个人而异。
我们在cmd中注册Goods相关的路由,我们发现注册路由时,controller.Goods飘红,原因是我们还没有编写这个方法,我们需要通过编写logic层实现业务逻辑,通过配置goland插件,自动生成service代码。经测试我发现:在编写logic逻辑后,就自动在service层生成了对应的goods文件和方法,非常方便。我们要在service层生成RegisterXX()方法后,在对应的业务模块中加上接口的实现注入。
小提示:该方法每个业务模块加一次即可。
建议大家在编写完第一个logic方法后(或者说service层生成了RegisterXX方法后):
就在logic层的init函数中实现服务的注册;
然后去查看logic.go文件是否添加了相关的依赖,没有的话也可以手动添加一下;
我们查看logic目录下的logic.go文件,发现已经自动添加了我们本次编写的goods相关的import,这个文件的作用是:将接口的具体实现,在程序启动时执行注册。
咱们回过头来,继续编写controller层的代码,例如:我们参考官方提供的controller/user.go 实现了我们自己的 controller/goods.go的添加商品方法:
注意事项
- 生产环境配置文件位置:hack/config.yaml
- 发布后的配置文件路径是:manifest/config/config.yaml
- 需要在main.go 声明和导入使用的数据库
- mysql运行go get -u github.com/gogf/gf/contrib/drivers/mysql/v2
- 使用了internal目录,进行了约束。除了对外暴露接口的方法放在api目录,其他不需要对外的逻辑都要放在internal中
标签:service,框架,dao,go,GoFrame,api,logic,要点,编写 From: https://www.cnblogs.com/DTCLOUD/p/17416808.html作者:扶程星云