筱工具(Golang)
筱锋的 Go 语言基础组件库文档
筱工具(Golang)
筱工具(Golang) 是筱锋的 Go 语言基础组件库,基于 Gin 框架构建,为微服务提供标准化的基础设施。
特性
- 🚀 快速启动 - 基于 Gin 框架,一键启动 Web 服务
- 🏗️ 多模块分层 - 四层架构(defined / common / major / plugins),按需引入
- 📦 开箱即用 - 内置日志、配置、数据库等常用组件
- 🆔 分布式 ID - 自定义雪花算法,支持业务基因
- 📝 统一响应 - 标准化 API 响应格式
- 🔒 类型安全 - 完整的类型定义和错误处理
- 📄 分页标准化 - 内置
PageRequest/PageResponse泛型分页模型 - ▶️ 运行时托管 - 内置
xMain.Runner,统一启动与优雅关闭 - 🔌 gRPC 支持 - 提供
xGrpcRunner、追踪拦截器与错误包装能力
模块概览
| 模块 | 层级 | 描述 |
|---|---|---|
| 注册系统 | major | Reg 结构体、节点初始化与 Runner 运行时 |
| 统一响应 | common | BaseResponse 与响应处理中间件 |
| 错误处理 | common | IError 接口与错误构造函数 |
| gRPC(可选) | plugins | 可选扩展:gRPC 启动、服务注册与优雅关闭 |
| 雪花算法 | common | 64 位分布式 ID 生成 |
| 模型基类 | major | GORM 实体基类、软删除与分页模型 |
| 日志系统 | common | 基于 slog 的彩色日志 |
| 中间件 | major | CORS、响应处理等 |
| 验证器 | common | 自定义验证规则与中文翻译 |
快速开始
# 按需安装对应层级模块
go get github.com/bamboo-services/bamboo-base-go/defined
go get github.com/bamboo-services/bamboo-base-go/common
go get github.com/bamboo-services/bamboo-base-go/major
go get github.com/bamboo-services/bamboo-base-go/plugins/grpc # 可选package main
import (
"context"
"github.com/gin-gonic/gin"
xLog "github.com/bamboo-services/bamboo-base-go/common/log"
xMain "github.com/bamboo-services/bamboo-base-go/major/main"
xReg "github.com/bamboo-services/bamboo-base-go/major/register"
)
func main() {
reg := xReg.Register(context.Background(), nil)
log := xLog.WithName(xLog.NamedMAIN)
xMain.Runner(reg, log, func(reg *xReg.Reg) {
reg.Serve.GET("/ping", func(c *gin.Context) {
c.JSON(200, gin.H{"message": "pong"})
})
})
}