基于 Gin 进行模块化设计的 API 框架,封装了常用的功能,使用简单,致力于进行快速的业务研发。
持续更新...
- 使用 go modules 初始化项目
- 安装 Gin 框架
- 性能分析工具(pprof)
- 支持优雅地重启或停止
- 规划项目目录
- 参数验证(validator.v9)
- 模型绑定和验证
- 自定义验证器
- 路由中间件
- 签名验证
- MD5 组合加密
- AES 对称加密
- RSA 非对称加密
- 日志记录
- 异常捕获
- 链路追踪(Jaeger)
- 限流
- 签名验证
- 自定义告警
- 邮件(gomail)
- 微信
- 短信
- 钉钉
- 存储
- MySQL
- Redis
- MongoDB
- gRPC
- ...
git clone https://github.com/xinliangnote/go-gin-api.git
- Go version >= 1.12
- Global environment configure (Linux/Mac)
export GO111MODULE=on
export GOPROXY=https://goproxy.io
cd go-gin-api
go run main.go
输出如下,表示 Http Server 启动成功。
|-----------------------------------|
| go-gin-api |
|-----------------------------------|
| Go Http Server Start Successful |
| Port:9999 Pid:xxxxx |
|-----------------------------------|
curl -X POST http://127.0.0.1:9999/product
访问:
http://127.0.0.1:9999/jaeger_test
服务端测试代码:
http://127.0.0.1:9999/debug/pprof
说明文档:
// 查看 CPU 信息
go tool pprof 127.0.0.1:9999/debug/pprof/profile
...
(pprof)
//输入 web,生成 svg 文件。
//输入 png,生成 png 文件。
//输入 top,查看排名前 20 的信息。
//查看更多命令,请执行 pprof help。
其他同理,比如:
// 查看 内存 信息
go tool pprof 127.0.0.1:9999/debug/pprof/heap
// 查看 协程 信息
go tool pprof 127.0.0.1:9999/debug/pprof/goroutine
// 查看 锁 信息
go tool pprof 127.0.0.1:9999/debug/pprof/mutex
如果还想查看火焰图,请执行如下命令:
// 1.下载 pprof 工具
go get -u github.com/google/pprof
// 2.启动可视化界面
pprof -http=:9998 xxx.cpu.prof
// 3.查看可视化界面
http://127.0.0.1:9998/ui/
- WEB 框架:github.com/gin-gonic/gin
- 链路追踪:github.com/jaegertracing/jaeger-client-go
- 限流:golang.org/x/time/rate