go-base-util
介绍
golang 基础工具类
封装gin、jwt、uuid、zaplog
基于os、ioutil、io、path对文件进行封装,让开发者对文件的基本处理更优化便捷操作
封装基础数据工具,让基础数据的处理更便捷
让开发者可以基于此工具包快速构建项目
软件架构
基于项目规范化gin框架开发
项目目录
pkg/ginx
全面封装gin, 让用户可基于此方法便捷化写入路由、中间件
让项目看上去规范化
pkg/log
基于zaplog进行封装,让开发者更快捷的使用zaplog配置日志管理
pkg/jwt
基于jwt/v4进行封装,让开发者更快捷的使用jwt
安装教程
在自己的项目中使用
1、 通过Go命令安装go-base-util
go get -u gitee.com/miajio/go-base-util
或
go.mod 方式
import "gitee.com/miajio/go-base-util"
然后使用 go mod tidy 将其导入您的代码中
使用说明
ginx
package main
import (
"net/http"
"gitee.com/miajio/go-base-util/pkg/ginx"
"github.com/gin-gonic/gin"
)
type aRouter struct{}
type bRouter struct{}
var ARouter ginx.Router = (*aRouter)(nil)
var BRouter ginx.Router = (*bRouter)(nil)
func (*aRouter) Execute(e *gin.Engine) {
hello := e.Group("/a")
hello.GET("/test", func(c *gin.Context) {
c.JSONP(http.StatusOK, gin.H{"code": 200, "msg": "ok"})
})
}
func (*bRouter) Execute(e *gin.Engine) {
hello := e.Group("/b")
hello.GET("/test", func(c *gin.Context) {
c.JSONP(http.StatusOK, gin.H{"code": 200, "msg": "ok"})
})
}
func main() {
// 基于gin引擎创建ginx封装路由
g := ginx.GinDefault()
g.AddRouter(ARouter, BRouter)
g.Run(":8080")
}
run
[GIN-debug] GET /a/test --> main.(*aRouter).Execute.func1 (3 handlers)
[GIN-debug] GET /b/test --> main.(*bRouter).Execute.func1 (3 handlers)
[GIN-debug] [WARNING] You trusted all proxies, this is NOT safe. We recommend you to set a value.
Please check https://pkg.go.dev/github.com/gin-gonic/gin#readme-don-t-trust-all-proxies for details.
[GIN-debug] Listening and serving HTTP on :8080
log
快速构建log并使用zaplog库进行日志处理
package main
import "gitee.com/miajio/go-base-util/pkg/log"
func main() {
l := log.NewLogger("./log", 256, 10, 7, false)
lo := l.New(map[string]log.Level{
"debug.log": log.DebugLevel,
"info.log": log.InfoLevel,
"error.log": log.ErrorLevel,
})
lo.Info("test success")
}
jwt
快速构建jwt并使用jwt生成token解析token
package main
import (
"fmt"
"time"
"gitee.com/miajio/go-base-util/pkg/jwt"
)
func main() {
var params = map[string]string{}
params["account"] = "miajio"
params["userName"] = "admin"
params["unitId"] = "1"
val, err := jwt.EncryptionToken(params, "test", time.Hour*5)
if err != nil {
fmt.Printf("encryption token error: %v", err)
return
}
fmt.Println(val)
v2, err := jwt.DecryptionToken(val, "test")
if err != nil {
fmt.Printf("eecryption token error: %v", err)
return
}
fmt.Println(v2)
}
代码参考
uuid
nanoid
参与贡献
特技