modulepackage
0.0.0-20241124045351-826f6357f2ff
Repository: https://github.com/yowaimono/min-util.git
Documentation: pkg.go.dev
# README
minutil - 一个通用的 Go 工具包
minutil
是一个通用的 Go 工具包,提供了一些常用的功能,包括 Gin 框架的统一响应封装、GORM 数据库操作的泛型封装等。
功能概述
- Gin 统一响应封装: 提供了
OK
和Err
函数,用于生成统一的 JSON 响应。 - GORM 数据库操作封装: 提供了泛型的数据库操作函数,如
GetOne
、GetAll
、Create
、Update
、Delete
、Like
和Search
。
安装
使用 go get
命令安装 minutil
包:
go get github.com/yowaimono/min-util
# Packages
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
# Functions
定义一个泛型函数来创建记录.
Debug 记录调试级别的日志.
定义一个泛型函数来删除记录.
Encrypt 使用 SHA-256 对输入字符串进行哈希,并返回十六进制编码的字符串.
定义一个工厂函数来创建错误的响应.
Error 记录错误级别的日志.
Fatal 记录致命错误级别的日志并退出程序.
定义一个泛型函数来获取所有记录.
GetLogger 返回单例模式的日志记录器.
定义一个泛型函数来获取单个记录.
GetStackInfo 获取Panic堆栈信息.
GetTokenManager 返回单例模式的 TokenManager.
Info 记录信息级别的日志.
定义一个泛型函数来执行模糊查询.
NewLinkedMap 创建一个新的LinkedMap.
NewMapTokenStore 创建一个新的 MapTokenStore.
NewMinMap 创建一个新的 MinMap.
NewRateLimiter 创建一个新的 RateLimiter 实例.
NewRedisTokenStore 创建一个新的 RedisTokenStore.
NewSkipList 创建一个新的跳表.
定义一个工厂方法来创建业务相关的错误响应.
定义一个工厂函数来创建成功的响应.
RateLimitMiddleware 是一个 Gin 中间件,用于限制重复请求.
RecoverPanic 恢复panic并记录日志.
Run 函数封装了启动和优雅退出的逻辑.
定义一个泛型函数来执行多字段搜索.
定义一个泛型函数来更新记录.
Verify 验证输入字符串的 SHA-256 哈希是否与给定的哈希值匹配.
Warn 记录警告级别的日志.
# Constants
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
No description provided by the author
ImmediateFlush 每次写操作后立即刷新.
ManualFlush 手动刷新.
PeriodicFlush 定期刷新.
# Structs
JWTTokenManager 是基于 JWT 的 Token 管理实现.
LinkedMap 是一个带有双索引的泛型map,使用list维护元素的顺序.
Logger 是自定义的日志记录器.
MapTokenStore 是基于内存的 Token 存储实现.
MinMap 结构体.
RateLimiter 是一个简单的限流器,使用自定义的存储后端.
RedisTokenStore 是基于 Redis 的 Token 存储实现.
定义一个泛型的统一响应结构体.
SkipList 是跳表结构.
SkipListNode 是跳表中的节点.
示例:使用 sync.Map 作为存储后端.
TokenClaims 是 JWT 的声明部分.
ValueWithExpiry 包含值和过期时间.
# Interfaces
Storage 接口定义了存储后端需要实现的方法.
TokenManager 是 Token 管理的接口.
TokenStore 是 Token 存储的接口.