2021-01-01 16:12:01 +08:00
2021-01-01 10:51:55 +08:00
2021-01-01 10:51:55 +08:00
2021-01-01 16:12:01 +08:00
2021-01-01 10:51:55 +08:00
2021-01-01 10:51:55 +08:00
2020-12-25 21:26:56 +08:00
2021-01-01 10:51:55 +08:00
2021-01-01 10:51:55 +08:00
2020-12-25 21:10:47 +08:00
2021-01-01 10:51:55 +08:00
2021-01-01 10:51:55 +08:00

 ██████╗  ██████╗        ██████╗ ██╗███╗   ██╗       █████╗ ██████╗ ██╗
██╔════╝ ██╔═══██╗      ██╔════╝ ██║████╗  ██║      ██╔══██╗██╔══██╗██║
██║  ███╗██║   ██║█████╗██║  ███╗██║██╔██╗ ██║█████╗███████║██████╔╝██║
██║   ██║██║   ██║╚════╝██║   ██║██║██║╚██╗██║╚════╝██╔══██║██╔═══╝ ██║
╚██████╔╝╚██████╔╝      ╚██████╔╝██║██║ ╚████║      ██║  ██║██║     ██║
 ╚═════╝  ╚═════╝        ╚═════╝ ╚═╝╚═╝  ╚═══╝      ╚═╝  ╚═╝╚═╝     ╚═╝

* [register cors]
* [register rate]
* [register panic notify]
* [register pprof]
* [register swagger]
* [register prometheus]

go-gin-api

基于 Gin 进行模块化设计的 API 框架,封装了常用的功能,使用简单,致力于进行快速的业务研发,同时增加了更多限制,以约束项目组开发成员、规避混乱无序和自由随意。

供参考学习,线上使用请谨慎!

查看 Jaeger 链路追踪代码,请查看 v1.0版,文档 jaeger.md 点这里

持续更新...

Features

  • 包管理工具 Go Modules
  • Gin 支持优雅关闭
  • 配置文件解析库 Viper
  • 文档使用 Swagger 生成
  • 性能分析使用 pprof
  • 集成
    • JWT 身份认证
    • zap 日志记录
    • rate 限流
    • 异常捕获并邮件告警
    • 每个请求具备链路ID
    • 统一定义错误码
    • 支持 FAT、UAT、PRO 环境
    • MD5、AES 对称加密、RSA 非对称加密
  • 存储
    • MySQL
    • Redis
    • MongoDB
  • gRPC
  • ...

Quick start

Requirements

  • Go version >= 1.12
  • Global environment configure (Linux/Mac)
export GO111MODULE=on
export GOPROXY=https://goproxy.io

Build & Run

cd go-gin-api

go run main.go

swagger

http://127.0.0.1:9999/swagger/index.html

// 生成文档
$ go get -u github.com/swaggo/swag/cmd/swag
$ swag init

pprof

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/

Special Thanks

@koketama

Learning together

S
Description
No description provided
Readme
5.4 MiB
Languages
Go 42%
JavaScript 35.8%
HTML 20.9%
CSS 0.8%
SCSS 0.2%
Other 0.2%