wuleiming2009 / myProject-goframe

It`s a simple golang web framework with gin & gorm.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

#MyProject

Go运行版本

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

自动化api文档

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

testCurl

注册账号
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"}'

About

It`s a simple golang web framework with gin & gorm.

License:MIT License


Languages

Language:Go 99.2%Language:Makefile 0.6%Language:Shell 0.2%