main.go 1.47 KB
package main

import (
	"apigame/common/svconfig"
	"apigame/common/svconst"
	"apigame/common/svdto"
	"apigame/common/svlog"
	"apigame/common/svmysql"
	"apigame/common/svredis"
	"apigame/configs"
	_ "apigame/routers"
	"apigame/service/cardholder"
	"github.com/astaxie/beego"
	"github.com/astaxie/beego/logs"
	"github.com/astaxie/beego/plugins/cors"
)

func main() {
	logs.Info("apigame")

	//解决跨域问题
	beego.InsertFilter("*", beego.BeforeRouter, cors.Allow(&cors.Options{
		AllowAllOrigins: true,
		//AllowMethods:     []string{"GET", "POST", "PUT", "DELETE", "OPTIONS"},
		AllowMethods:     []string{"POST"},
		AllowHeaders:     []string{"Origin", "Authorization", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		ExposeHeaders:    []string{"Content-Length", "Access-Control-Allow-Origin", "Access-Control-Allow-Headers", "Content-Type"},
		AllowCredentials: true,
	}))

	if beego.BConfig.RunMode == "dev" {
		beego.BConfig.WebConfig.DirectoryIndex = true
		beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
	}

	Init()

	beego.Run()
}

func Init() {

	svconst.AppName = beego.AppConfig.String("appname")

	svlog.Init()

	svlog.InitAliLog(svconst.AppName)

	if !svredis.Init() {
		return
	}

	if !svmysql.Init() {
		return
	}

	//// 初始化数数打点
	//_ = thinkingdata.InitThinkData()
	//
	//_ = config.InitLxLimit()

	if !svconfig.Init() {
		return
	}
	if !configs.Init() {
		return
	}

	svdto.Init()

	// 初始化配置
	cardholder.Init()
}