1,通过命令行自定义端口和环境
先用flag提取参数,如果要环境,就反向注进去,
如果是端口,就打到beego.Run函数里去。
2,在作router里的url解析时,如果URL中含有-中划线,用严格的string是不能匹配的。
需要去掉这个string限定。
package main
import (
"flag"
"fmt"
_ "prismlogapi/routers"
"github.com/astaxie/beego"
"github.com/astaxie/beego/orm"
_ "github.com/go-sql-driver/mysql"
)
func main() {
//orm.Debug = true
runmode := flag.String("runmode", "dev", "runmode:default is dev")
port := flag.String("port", "9527", "port:default is 9527")
flag.Parse()
beego.BConfig.RunMode = *runmode
fmt.Println(beego.BConfig.RunMode)
fmt.Println(port)
if beego.BConfig.RunMode == "dev" {
beego.BConfig.WebConfig.DirectoryIndex = true
beego.BConfig.WebConfig.StaticDir["/swagger"] = "swagger"
}
dbhost := beego.AppConfig.String("dbhost")
dbport := beego.AppConfig.String("dbport")
dbuser := beego.AppConfig.String("dbuser")
dbpassword := beego.AppConfig.String("dbpassword")
db := beego.AppConfig.String("db")
orm.RegisterDriver("mysql", orm.DRMySQL)
conn := dbuser + ":" + dbpassword + "@tcp(" + dbhost + ":" + dbport + ")/" + db + "?charset=utf8"
fmt.Println(conn)
orm.RegisterDataBase("default", "mysql", conn)
orm.SetMaxIdleConns("default", 1000)
orm.SetMaxOpenConns("default", 2000)
beego.Run(":" + *port)
}
// @Title 获取特定部署的日志
// @Description 返回多条日志
// @Param id path int true "The key for staticblock"
// @Success 200 {object} models.PrismLog
// @router /:app/:depverion:string/:order:int/ [get]
func (u *PrismLogController) GetByAppDepOrd() {
app := u.GetString(":app")
depverion := u.GetString(":depverion")
order, _ := u.GetInt(":order")
fmt.Println(app, depverion, order, "@@@@@@@@@@@@@@@")
s := models.GetPrismLogByAppDepOrd(app, depverion, order)
u.Data["json"] = s
u.ServeJSON()