gin-standard/main.go

63 lines
1.3 KiB
Go

package main
import (
"flag"
"net/http"
"time"
"github.com/gin-gonic/gin"
"github.com/sirupsen/logrus"
"github.com/spf13/viper"
)
const (
APPNAME = "snippet"
)
// @title 浙大城院产业互联-GIN标准结构
// @version 1.0
// @description 宁波团队提供技术支持
// @termsOfService https://myschools.me/
// @contact.name suguo.yao
// @contact.url https://myschools.me/suguo/snippet
// @contact.email ysg@myschools.me
// @securityDefinitions.basic BasicAuth
// @securitydefinitions.oauth2.application OAuth2Application
// @tokenUrl https://example.com/oauth/token
// @scope.write Grants write access
// @scope.admin Grants read and write access to administrative information
// @host s1.xintijiao.com
// @BasePath /
func main() {
//配置读取
cf := flag.String("config", "config.yaml", "file of config")
flag.Parse()
viper.SetConfigFile(*cf)
if err := viper.ReadInConfig(); err != nil {
panic(err)
}
//进行组件初始化
//api 服务启动
router := gin.New()
setupRouter(router)
s := &http.Server{
Addr: viper.GetString("app.host"),
Handler: router,
ReadTimeout: 10 * time.Second,
WriteTimeout: 10 * time.Second,
MaxHeaderBytes: 1 << 20,
}
logrus.WithFields(logrus.Fields{
"func": "main",
}).Infof("%s service on %s", APPNAME, viper.GetString("app.host"))
logrus.Fatal(s.ListenAndServe())
}