澄澈的眼|Yiigo超好用的go开发辅助库

今天小编给大家推荐一个 Go 轻量级开发通用库 , 简单易上手 , 功能满足大部分日常开发
Features

  • 支持 MySQL
  • 支持 PostgreSQL
  • 支持 MongoDB
  • 支持 Redis
  • 支持 Apollo
  • 邮件使用 gomail
  • 配置使用 toml
  • SQL使用 sqlx
  • ORM使用 gorm
  • 日志使用 zap
  • 包含一些实用的帮助方法 , 如:http、cypto、date、IP 等
RequirementsGo1.11+Installationgo get github.com/shenghui0779/yiigoUsageConfig
  • yiigo.toml
[app]env = "dev" # dev | beta | proddebug = true[apollo]app_id = "test"cluster = "default"address = "127.0.0.1:8080"namespace = ["apollo_test"]cache_dir = "./"accesskey_secret = ""insecure_skip_verify = true[db][db.default]driver = "mysql"dsn = "username:password@tcp(localhost:3306)/dbname?timeout=10s
MySQL// default dbyiigo.DB().Get(&User{}, "SELECT * FROM `user` WHERE `id` = ?", 1)yiigo.Orm().First(&User{}, 1)// other dbyiigo.DB("foo").Get(&User{}, "SELECT * FROM `user` WHERE `id` = ?", 1)yiigo.Orm("foo").First(&User{}, 1)MongoDB// default mongodbctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)defer cancel()yiigo.Mongo().Database("test").Collection("numbers").InsertOne(ctx, bson.M{"name": "pi", "value": 3.14159})// other mongodbctx, cancel := context.WithTimeout(context.Background(), 5*time.Second)defer cancel()yiigo.Mongo("foo").Database("test").Collection("numbers").InsertOne(ctx, bson.M{"name": "pi", "value": 3.14159})Redis// default redisconn, err := yiigo.Redis().Get()if err != nil {log.Fatal(err)}defer yiigo.Redis().Put(conn)conn.Do("SET", "test_key", "hello world")// other redisconn, err := yiigo.Redis("foo").Get()if err != nil {log.Fatal(err)}defer yiigo.Redis("foo").Put(conn)conn.Do("SET", "test_key", "hello world")HTTPclient, err := yiigo.NewHTTPClient(yiigo.WithHTTPMaxIdleConnsPerHost(1000),yiigo.WithHTTPMaxConnsPerHost(1000),yiigo.WithHTTPDefaultTimeout(time.Second*10),)if err != nil {log.Fatal(err)}b, err := client.Get("url...", yiigo.WithRequestTimeout(5*time.Second))if err != nil {log.Fatal(err)}fmt.Println(string(b))Logger【澄澈的眼|Yiigo超好用的go开发辅助库】// default loggeryiigo.Logger().Info("hello world")// other loggeryiigo.Logger("foo").Info("hello world")


    推荐阅读