1 Star 0 Fork 4

好雨科技 / go-demo

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
main.go 1.71 KB
一键复制 编辑 原始数据 按行查看 历史
Guox 提交于 2022-08-24 11:30 . 拾取环境变量PORT定义启动端口
package main
import (
"database/sql"
"fmt"
"net/url"
"os"
_ "github.com/go-sql-driver/mysql"
dbinfo_http "github.com/goodrain/go-demo/dbinfo/delivery/http"
dbinfo_repo "github.com/goodrain/go-demo/dbinfo/repository"
dbinfo_ucase "github.com/goodrain/go-demo/dbinfo/usecase"
foobar_http "github.com/goodrain/go-demo/foobar/delivery/http"
foobar_ucase "github.com/goodrain/go-demo/foobar/usecase"
"github.com/goodrain/go-demo/middleware"
proxy_http "github.com/goodrain/go-demo/proxy/delivery/http"
"github.com/labstack/echo"
"github.com/sirupsen/logrus"
)
func GetEnvDefault(key, defVal string) string {
val, ex := os.LookupEnv(key)
if !ex {
return defVal
}
return val
}
func main() {
logrus.SetLevel(logrus.DebugLevel)
dbuser := os.Getenv("MYSQL_USER")
dbpw := os.Getenv("MYSQL_PASS")
dbhost := os.Getenv("MYSQL_HOST")
dbport := os.Getenv("MYSQL_PORT")
dbname := os.Getenv("MYSQL_DATABASE")
port := GetEnvDefault("PORT", "5000")
conn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s", dbuser, dbpw, dbhost, dbport, dbname)
val := url.Values{}
val.Add("parseTime", "1")
val.Add("loc", "Asia/Shanghai")
dsn := fmt.Sprintf("%s?%s", conn, val.Encode())
dbconn, err := sql.Open(`mysql`, dsn)
if err != nil {
logrus.Warningf("error opening database: %v", err)
}
defer dbconn.Close()
dbinfoRepo := dbinfo_repo.NewMysqlDBInfoRepository(dbconn)
e := echo.New()
middL := middleware.InitMiddleware()
e.Use(middL.CORS)
e.Static("/", "public")
dbinfoUcaser := dbinfo_ucase.NewDBInfoUsecase(dbinfoRepo)
dbinfo_http.NewDBInfoHTTPHandler(e, dbinfoUcaser)
foobarUcaser := foobar_ucase.NewFoobarUsecase()
foobar_http.NewFoobarHandler(e, foobarUcaser)
proxy_http.NewProxyHandler(e, nil)
e.Logger.Fatal(e.Start(":" + port))
}
1
https://gitee.com/rainbond/go-demo.git
git@gitee.com:rainbond/go-demo.git
rainbond
go-demo
go-demo
master

搜索帮助