「这是我参与2022首次更文挑战的第20天,活动详情查看:2022首次更文挑战」
生命不息,学习不止
题外话
今天是周四了,大家坚持一下,美好的假期就要来到我们身边啦,话说这次冬奥会中国选手们实力好强劲啊,已经拿到七枚金牌了,为奥运健儿们喝彩!!!努力学习的掘友们也值得喝彩!!!
废话不多说,上货
开源项目——go-gin-api
go-gin-api
这是一个主要以gin框架为主,包含了一些常用功能,包括日志,菜单,权限,代码生成的功能的一个项目。
main.go 代码解析
上回已经说完了main.go中日志初始化的模块,声明并初始化了assesslog和cronlog,如上
接下来就是初始HTTP服务模块了,大家冲冲冲……
NewHTTPServer
上回NewHTTPServer函数还没有讲完,咱们继续,上代码
上回已经说了openBrowserUri的值是http://127.0.0.1:9999 ,大家可自行更改配置文件中的ip和端口
紧接着是一个标识判断,就是大家第一次运行项目进入的配置页,如果配置了就会初始化下方的数据库,redis和定时任务,如果未配置就只能跳转到配置页。
被初始化的数据库,redis和定时任务对象,都作为了resource对象的成员变量。
下面是一个比较重要的地方了,这里初始化了一个路由选择器
core.WithEnableOpenBrowser(openBrowserUri)//启动后在浏览器中打开 uri
core.WithEnableCors() //设置支持跨域
core.WithEnableRate() //设置支持限流
core.WithAlertNotify(alert.NotifyHandler(logger)) //设置告警通知
core.WithRecordMetrics(metrics.RecordHandler(logger)) //设置记录接口指标
五个方法的具体作用我已经写了注释,一看就明白,函数的具体实现比较多,我会在后面详细说说
继续NewHTTPServer函数,也是最后一部分了
初始化路由选择器后,便声明了一个拦截器,绑定了输出的日志
随后便是设置四个模块业务的路由
路由在这里可以理解为前端请求后端的接口地址,后面还会细说
随后便是根据resource对象初始化一个sever对象并返回,随后便重新回到main.go中
重回mian.go
可以看到我们通过NewHTTPServer函数初始化了一个sever
随后便根据所给端口开启了goroutine进行监听。
随后便是依次关闭 http server,数据库,redis缓存和定时任务
整个main.go就算是完成了。
整个程序的入口基本流程如下
1.定义并初始日志
2.定义并初始化httpsever
3.开启http监听
4.关闭所有服务
下回预告
下回咱们就自己给自己提需求,从实际出发学习代码,兄弟们冲冲冲。
下一篇就讲,敬请期待
大家看完发现有什么错误,写在下面吧!跟我黑虎阿福比划比划!