/goutils

Golang 开发过程中常用工具包,以提升开发效率

Primary LanguageGoMIT LicenseMIT

感谢Jetbrain 为开源事业提供的支持。

Golang Utils

Golang 典型常用工具包,解决服务端开发的常用场景,提高每个项目的生产力。

定位:每个工具可单独被使用,尽可能保持简洁,并且普适性,大多数典型的服务端可能会用到其中80%的工具。

tools 工具库

logutils

打印对象更漂亮

logutils.PrintObj(some Obj)

dateutils

日期工具类,后面根据需求添加。

具体看代码 tools/dateutils/dateutils.go

fileutils

文件工具类, 后面根据需求添加。

  • Exists
  • IsDir
  • MkDir
  • MkDirIfNotExists
  • Remove

iputils

ip工具类

  • GetWanIp

debugutils

调试工具类,设置全局调试开关,可以开启和关闭调试

具体看代码

envutils

APP环境变量管理工具,如envutils.IsProd(),用于判断当前是否属于生产环境。

具体看代码 tools/envutils/envutils.go

其他

更多工具详见 tools/

wechat 微信相关API的开发

corpwechat

企业微信API封装, 对 access_token 做了lazy load 和过期刷新。

  • GetAccessToken 单独获得access_token,以便做扩展开发用。
  • GetUserInfo 获取 UserId。
  • SendTextMessage 获取 发送消息。

wechatapp

小程序API封装

payment

微信支付封装,对 github.com/liyoung1992/wechatpay 项目进行了再一次包装

  • Pay 支付。
  • VerifyNotify 对支付结果进行验证。
  • GetPaySign 小程序二次签名。

redisdb

简化redis 初始化

mongo

对官方驱动Mongo 官方驱动的封装,对常规CRUD进行了简化。 具体看代码 mongo/crud.go

mysqldb

对mysql实例化过程进行了封装,默认使用gorm包装。

gindefault

为经典http server ,gin 提供的默认模板,避免每个项目一上来就设置一堆。比如时区默认设置为Asia/Shanghai,跨域什么的。

example:

gindefault.Run(":80", func(engine *gin.Engine) {
    //在此定义gin的其他
})

牺牲灵活性,对返回进行了标准化。

{status:1,msg:'success',data:some Object}

gindefault.returnSuccess()
gindefault.returnFail()
gindefault.returnError()

具体看代码 gindefault/utils.go

ip2location

自动下载ip数据库,内存中识别ip对应地址。 使用方法

ip2location.GetLocation(ip)

依赖项目:https://github.com/lionsoul2014/ip2region/

具体看测试用例: ip2location/ip2location_test.go

memqueue

内存级异步队列

safeexit

优雅退出进程