#MyProject
go1.15
安装go-imports
,并在goland->Preference->Tool->File Watcher中添加
项目使用go mod管理依赖 GOPROXY=https://goproxy.io,https://goproxy.cn,https://mirrors.aliyun.com/goproxy/,direct
根目录下执行make
命令进行编译
run.sh
可以运行项目
项目根目录有docker-compose.yml,可以快速使用docker-compose完成redis和mysql的启动
|_ bin 二进制生成目录,make之后自动生成
|_ src 代码目录
|_ cache redis缓存
|_ common 组件目录(业务或项目相关)
|_ bcrypt 加解密
|_ finance 资金工具
|_ metadata 中间件元数据
|_ response 请求响应组件
|_ snow_flake 雪花ID生成器
|_ token jwt令牌
|_ verify 格式校验
|_ conf 配置目录
|_ controllers mvc中的c控制器
|_ docs swagger生成的文档
|_ lib 底层库目录(与业务和项目无关)
|_ models 数据层目录
|_ proto api协议层目录
|_ routers 路由目录
|_ service 业务逻辑目录
|_ go.mod mod依赖文件
|_ main.go 程序入口文件
注意:lib包放的是跟业务和项目完全无关的工具包,common放的是跟项目或业务相关的方法工具等
全项目包括数据库所有时间采用UTC时区
初始化: zl := log.FromContext(ctx)
debug信息 zl.Debug(msg)
格式化 zl.Debugf
普通信息 zl.Info
格式化 zl.Infof
错误信息 zl.Error
格式化 zl.Errorf
go get -u github.com/swaggo/swag/cmd/swag
make swag
会自动下载swag
工具
采用gin-swagger自动生成接口文档
地址:https://github.com/swaggo/gin-swagger
注释规范文档:https://swaggo.github.io/swaggo.io/
生成swagger文档,make swag
访问路由 /swagger/index.html
注册账号
curl --location --request POST 'http://127.0.0.1:8000/account/sign_up'
--data-raw '{"email":"123456@qq.com","name":"abc","password":"11111111"}'
登陆
curl --location --request POST 'http://127.0.0.1:8000/account/login' \ --data-raw '{"email":"123456@qq.com","name":"abc","password":"11111111"}'