Go to file
yanweidong 82e6b81126 fix cache. 2025-10-02 19:46:15 +08:00
cache fix cache. 2025-10-02 19:46:15 +08:00
conf fix logger,cache 2025-10-02 18:06:23 +08:00
crypto feat(dependencies): 更新 go.mod 和 go.sum 文件,添加新依赖并优化现有依赖版本 2025-09-27 00:41:27 +08:00
database fix logger,cache 2025-10-02 18:06:23 +08:00
env feat:ok 2025-02-07 20:33:27 +08:00
errcode add err code 2025-04-19 20:14:37 +08:00
infra fix logger,cache 2025-10-02 18:06:23 +08:00
licence fix licence watch 2025-05-28 15:58:28 +08:00
logger fix logger,cache 2025-10-02 18:06:23 +08:00
middleware add middleware for CORS and mode configuration 2025-09-02 10:01:09 +08:00
printer ``` 2025-09-27 00:20:36 +08:00
queue/nats feat:ok 2025-02-07 20:33:27 +08:00
service feat(dependencies): 更新 go.mod 和 go.sum 文件,添加新依赖并优化现有依赖版本 2025-09-27 00:41:27 +08:00
third add third 2025-04-06 13:42:44 +08:00
types fix 2025-07-25 15:10:59 +08:00
utils fix logger,cache 2025-10-02 18:06:23 +08:00
vars feat(vars): 添加 OK 状态码 2025-09-12 23:27:14 +08:00
with ``` 2025-09-27 00:20:36 +08:00
README.md feat(dependencies): 更新 go.mod 和 go.sum 文件,添加新依赖并优化现有依赖版本 2025-09-27 00:41:27 +08:00
go.mod fix logger,cache 2025-10-02 18:06:23 +08:00
go.sum fix logger,cache 2025-10-02 18:06:23 +08:00

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 来改进本项目。

联系方式

如有问题,请联系开发团队。