# go-base-util **Repository Path**: miajio/go-base-util ## Basic Information - **Project Name**: go-base-util - **Description**: golang 基础工具类 封装式引用viper、redis、gin 基于此工具快速构建项目 此项目因特殊原因已暂停目前以gitee为基础仓库的开发 此项目后续的版本更新及业务模式将转移至github上 基于github上项目名称为: gin-screw 访问地址为: https://github.com/miajio/gin-screw 感谢您的关注 - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: https://miajio.github.io/gin-screw/ - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-03-02 - **Last Updated**: 2022-06-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # go-base-util #### 介绍 golang 基础工具类 封装gin、jwt、uuid、nanoid、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 方式 ``` golang import "gitee.com/miajio/go-base-util" ``` 然后使用 go mod tidy 将其导入您的代码中 #### 使用说明 ##### ginx ``` golang 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库进行日志处理 ```golang 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 ```golang 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](github.com/go-basic/uuid) [nanoid](github.com/matoous/go-nanoid) #### 参与贡献 #### 特技