Go项目实战之第一阶段骨架搭建完成

2022年3月19日 293点热度 0人点赞 0条评论
今天周六,利用两个多小时的时间把昨天的需求简单梳理了一下,并开始搭建项目,进行了简单的编辑,到目前为止已经实现注册功能了。
这个项目到今天是第三天了,我并不能保证每天都更新日记,但确实每天都会更新项目,时间多久多做点,时间少就少做点,总之这个事情是不可以断的。希望各位也给我助助威,鞭策一下我这颗懒惰的心。
本节主要涉及以下几个知识点:
1)gin web框架
2)viper 配置管理
3)Gorm 数据库连接
这三个知识点我后面单独拉出来介绍,这节仅简单介绍并陈述我都做了什么。
一、选择Gin框架
在 Go语言开发的
Web 框架中,有两款著名 Web 框架分别是 Martini 和 Gin,两款 Web 框架相比较的话,Gin 自己说它比 Martini 要强很多。
Gin 是
Go语言写的一个 web 框架,它具有运行速度快,分组的路由器,良好的崩溃捕获和错误处理,非常好的支持中间件和 json。总之在
Go语言开发领域是一款值得好好研究的 Web 框架
gin安装:go get -u github.com/gin-gonic/gin
本项目中初始化位置:
图片
 
二、选viper做配置管理
viper
是一个配置解决方案,拥有丰富的特性:
    • 支持JSON/TOML/YAML/HCL/envfile/Java properties 等多种格式的配置文件;
    • 可以设置监听配置文件的修改,修改时自动加载新的配置;
    • 从环境变量、命令行选项和io.Reader中读取配置;
    • 从远程配置系统中读取和监听修改,如
          etcd/Consul;
    • 代码逻辑中显示设置键值。
Viper安装:go get
github.com/spf13/viper
本项目中初始化位置:
图片
 
图片
根据以上代码可知,我的配置文件放下项目路径/config下,文件为:application.yml
三、数据库连接使用Gorm库
gorm是go语言的一个orm框架,具体的原理及思想我也介绍不清楚,你只需要知道它是你操作数据库的桥梁即可、
Gorm安装:go get -u
github.com/jinzhu/gorm
本项目中初始化位置:
图片
 
图片
上图中的viper.GetString("datasource.driverName")就是利用前面说过的配置管理viper去配置文件中获取相对应的参数。
具体的配置文件如下:
图片
这里留一个小彩蛋,只有在真正运行项目的时候才会发现哦
四、创建数据模型
一共创建了两个数据模型
图片
 
图片
这里一共涉及到三个知识点
1gorm.Model这个标记一个结构中有一个结构中没有,那他是用来干什么的呢?其实这就相当于是继承,加上这个后就相当于继承了Model,不加这个代表不继承Model。而Model结构中有以下四个定义好的字段:
图片
这是Gorm自带的,所以你清楚这一点就行了。
2)上面Article结构体中有一个uuid.UUID标记,这个是哪里来的?其实是引用自:
uuid"github.com/satori/go.uuid"
它的主要功能就是在实际项目中,经常会使用到一个唯一标识的,比如唯一标识一条记录等情况,这个go.uuid项目库就是干这个事情的。
3)在上面Article结构体重还有一个非自带类型:Time,这个是自定义的,其作用就是把时间格式化了而已。如果不格式化的话,它显示的就是时间戳,这个大家应该都知道吧?所以它就是让我们能更方便的查看时间。
五、写了一个接口
账号注册 v1/account/register
图片
这节就先开这一个接口吧,点到为止。贪多贪快嚼不烂,我们的目的是掌握开发过程中出现的各个知识点,并不是完成功能的开发。所以大家不要慌尽量把这节的内容摸透咽下去再进行下一步的开发。
下一节安排:
1、Go 项目实战 之 Gin框架的详解
2、Go 项目实战 之
配件管理viper 详解
3、Go 项目实战 之
数据库连接Grom详解
 
这个项目到目前为止,基本上骨架就出来了,当然项目本身问题还是很多的,我们会在后面一步一步去完善,为的就是在完善中学习。直接一步到位的框架设计只会在外包项目中出现,我们又不赶进度,慢慢来哈。
 
开源十年项目的更新首发于公众号:计算机自学平台,有兴趣的小伙伴可以持续关注,并欢迎各位加我的微信跟我一起完成并推动项目的发展。
图片

33830Go项目实战之第一阶段骨架搭建完成

这个人很懒,什么都没留下

文章评论