modulepackage
0.0.0-20240519022713-01da8f46e42b
Repository: https://github.com/mr5356/go-template.git
Documentation: pkg.go.dev
# README
Go-template
Golang 模板项目,用于快速构建一个Web项目
使用说明
克隆项目到本地
git clone https://github.com/MR5356/go-template.git
更新项目名称
sed -i "s#github.com/MR5356/go-template#NEW_NAME#g" `grep -rl "github.com/MR5356/go-template" .`
如果是mac电脑,sed命令有所不同,可使用以下命令:
sed -i "" "s#github.com/MR5356/go-template#NEW_NAME#g" `grep -rl "github.com/MR5356/go-template" .`
特性清单
Prometheus metrics
默认集成Prometheus metrics接口,对外暴露地址为/api/v1/metrics
Swagger
默认集成Swagger,对外暴露地址为/api/v1/swagger/index.html
首次运行前先执行make docs
或者swag init
生成docs
目录
如果没有swag,可以通过以下命令安装:
go install github.com/swaggo/swag/cmd/swag@latest
Database
数据库驱动
默认使用Gorm连接数据库,当前已经集成MySql
、Postgresql
和SQLite
,可在生成config
时通过WithDatabase
方法进行配置,如
cfg := config.New(config.WithDatabase("postgres", "host=postgresql-hl user=elune password=elune dbname=elune port=5432 sslmode=disable TimeZone=Asia/Shanghai"))
数据库处理
已经封装了基本的数据库增删改查、表大小、分页查询等操作,可参考pkg/domain/demo
和pkg/middleware/database
Dockerfile
包含一份最小化Dockerfile
Makefile
包含一份Makefile,可通过make help
查看支持的操作
示例代码
包含一份示例代码,参考pkg/domain/demo
服务相关
支持优雅停止服务
支持自定义日志格式
参考pkg/log
支持自定义返回码
参考pkg/response
支持代理前端静态文件
支持代理前端静态文件,将编译好的前端项目防止在pkg/server/static
目录下即可