在 go.mod 中添加了多个新依赖,包括用于微服务架构、数据库支持、缓存和消息队列的库。同时,更新了 go.sum 文件以反映这些更改。README.md 文件也进行了相应的更新,增加了微服务架构的描述和功能模块的详细信息,确保文档与代码保持一致。 |
||
---|---|---|
cache | ||
conf | ||
crypto | ||
database | ||
env | ||
errcode | ||
infra | ||
licence | ||
middleware | ||
printer | ||
queue/nats | ||
service | ||
third | ||
types | ||
utils | ||
vars | ||
with | ||
README.md | ||
go.mod | ||
go.sum |
README.md
BSM-SDK Core
BSM-SDK Core 是一个企业级后端开发工具包的核心模块,提供了微服务架构、配置管理、加密解密、缓存、数据库访问、中间件等基础功能。
私有仓库设置
go env -w GOPRIVATE=git.apinb.com/*
go env -w GONOPROXY=git.apinb.com/*
go env -w GOINSECURE=git.apinb.com/*
go env -w GONOSUMDB=git.apinb.com/*
核心功能模块
1. 服务管理 (service)
服务启动与注册
- Service: 核心服务结构,支持 gRPC 服务启动和 etcd 注册
- New(): 创建服务实例
- Start(): 启动服务,支持 etcd 注册和 HTTP 网关
- Stop(): 优雅停止服务
- Use(): 执行初始化函数
服务发现
- FoundGrpcMethods(): 自动发现 gRPC 方法
- RegisterService(): 注册服务到 etcd
- ServiceRegister: 服务注册器,支持租约管理
元数据解析
- ParseMetaCtx(): 解析 gRPC 上下文中的元数据
- ParseOptions: 解析选项,支持角色验证和私有IP检查
2. 配置管理 (conf)
配置加载
- New(): 加载配置文件,支持环境变量替换
- NotNil(): 验证必需配置项
- PrintInfo(): 打印配置信息
- CheckPort(): 检查端口配置
配置类型
- MicroServiceConf: 微服务配置
- GatewayConf: 网关配置
- DBConf: 数据库配置
3. 加密与解密 (crypto)
AES 加密
- AESGCMEncrypt/AESGCMDecrypt: GCM 模式加密解密
- Encrypt/Decrypt: CBC 模式加密解密
- AesEncryptECB/AesDecryptECB: ECB 模式加密解密
- AesKeyCheck(): 密钥环境变量检测
RSA 加密
- EncryptWithPublicKey(): 公钥加密
- Decrypt(): 私钥解密
通用加密
- AesEncryptCBC/AesDecryptCBC: 通用 CBC 加密解密
- PKCS7Padding/PKCS7UnPadding: PKCS7 填充
4. 数据库支持 (database)
数据库连接
- NewDatabase(): 创建数据库连接,支持 MySQL 和 PostgreSQL
- NewMysql(): MySQL 连接
- NewPostgres(): PostgreSQL 连接
数据库类型
- SqlOptions: 数据库连接选项
- Std_IICUDS: 标准数据库模型(ID、Identity、Created、Updated、Deleted、Status)
- Std_ICUD: 标准数据库模型(ID、Created、Updated、Deleted)
- Std_Passport: 护照模型
- Std_Owner: 所有者模型
5. 缓存支持 (cache)
Redis 缓存
- RedisClient: Redis 客户端封装
- New(): 创建 Redis 连接
- Hash(): 哈希分片计算
内存缓存
- 支持内存缓存操作
6. 消息队列 (queue)
NATS 消息队列
- Nats: NATS 客户端封装
- NewNats(): 创建 NATS 连接
- Subscribe(): 订阅消息
- Producer(): 发布消息
7. 中间件 (middleware)
JWT 认证
- JwtAuth(): JWT 认证中间件
- ParseAuth(): 解析认证信息
CORS 支持
- Cors(): CORS 中间件
运行模式
- Mode(): 设置 Gin 运行模式
8. 工具类 (utils)
网络工具
- GetLocationIP(): 获取本机IP
- IsPublicIP(): 判断是否为公网IP
- HttpGet/HttpPost(): HTTP 请求工具
- DownloadFile(): 文件下载
数据类型转换
- String2Int/String2Int64: 字符串转整数
- String2Float64/String2Float32: 字符串转浮点数
- Int2String/Int642String: 整数转字符串
- Float64ToString/Float32ToString: 浮点数转字符串
- AnyToString(): 任意类型转字符串
时间处理
- Time2String(): 时间转字符串
- String2Time(): 字符串转时间
身份标识
- UUID(): 生成 UUID
- ULID(): 生成 ULID
文件操作
- PathExists(): 检查路径是否存在
- CreateDir(): 创建目录
- GetRunPath(): 获取运行路径
- GetCurrentPath(): 获取当前路径
JSON 处理
- JsonEscape(): JSON 转义
9. 错误处理 (errcode)
标准错误码
- Header 错误: 101-104
- 标准错误: 110-121
- JWT 错误: 131-139
- 模型错误: 151-157
- gRPC 错误: 171-186
错误创建
- NewError(): 创建标准错误
- ErrFatal(): 创建致命错误
- ErrNotFound(): 创建未找到错误
10. 响应处理 (infra)
统一响应
- Reply: 统一响应结构
- Success(): 成功响应
- Error(): 错误响应,支持 gRPC 状态码转换
11. 日志打印 (printer)
彩色日志
- Info(): 信息日志(白色)
- Warn(): 警告日志(橙色)
- Success(): 成功日志(绿色)
- Error(): 错误日志(红色)
- Json(): JSON 格式化输出
12. 环境管理 (env)
运行时环境
- RuntimeEnv: 运行时环境配置
- NewEnv(): 初始化环境
- GetEnvDefault(): 获取环境变量默认值
13. 变量管理 (vars)
全局变量
- ServiceKey: 服务键
- HostName: 主机名
- VERSION: 版本号
- BUILD_TIME: 构建时间
- GO_VERSION: Go 版本
14. 第三方集成 (third)
微信集成
- 支持微信相关功能
15. 许可证管理 (licence)
许可证验证
- 支持许可证文件验证
配置环境变量
export BSM_Workspace=def
export BSM_JwtSecretKey=your_secret_key
export BSM_RuntimeMode=dev
export BSM_Prefix=/usr/local/bsm
安全建议
- 使用强密钥进行加密
- 定期更新 JWT 密钥
- 配置适当的数据库连接池
- 使用 HTTPS 进行通信
- 定期检查许可证有效性
许可证
本项目采用私有许可证,请确保已获得相应的使用授权。
贡献
欢迎提交 Issue 和 Pull Request 来改进本项目。
联系方式
如有问题,请联系开发团队。