Gin+ini+redis+log+mysql+cron+govendor框架搭建
文章首发于:clawhub.club
最近学习Go,在看各种文档,博客,别人写的代码。最后搭建了一个纯API应用框架。
- 选用Gin框架做web服务
- 分层思想
- 配置文件采用:github.com/go-ini/ini
- 日志采用go.uber.org/zap/zapcore和gopkg.in/natefinch/lumberjack.v2
- redis:github.com/go-redis/redis
- orm:github.com/jinzhu/gorm操作mysql
- 校验框架采用:github.com/astaxie/beego/validation
- Token方案:github.com/dgrijalva/jwt-go
- 工具包:github.com/Unknwon/com
- 导入导出excel:github.com/360EntSecGroup-Skylar/excelize和github.com/tealeg/xlsx
项目地址:
https://github.com/ClawHub/go-gin-demo
主要参考文档:
感谢这位大神:https://github.com/EDDYCJY/go-gin-example/blob/master/README_ZH.md
gin项目地址
gin官方文档
Golang 微框架 Gin 简介
go-ini项目地址
go-ini文档
golang 读取配置文件
zap项目地址
golang高性能日志库zap配置示例
深度 | 从Go高性能日志库zap看如何实现高性能Go组件
go-redis项目地址
GORM官方文档
validation项目地址
jwt-go项目地址
jwt-go文档
Unknwon/com
tealeg/xlsx
360EntSecGroup-Skylar/excelize
GOLANG使用VENDOR目录来管理依赖包
Go 语言开发 API 实践
技术选型时的犹豫
- 服务框架最开始时看的是beego这个框架确实很牛!但是对我这个新手来说,太重了,所以就选了Gin
- redis客户端也有个redigo也不错,唯一不好的是貌似不支持集群,所以选了go-redis。
- 配置文件选型,我是java出身,所以很倾向于用properties文件,最开始用了magiconair/properties,但是发现好多go工程都是用的ini文件,索性也用这个,用起来感觉也很顺手go-ini,好评!
- 日志文件,从最开始就用官方log,后来跟着教程写了一个log,到现在用的uber的zap,自己简单封装一下,用起来也很不错。
先写到这里好了。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ClawHub的技术分享!