func main() { // Swagger configuration SWAGGERPATH = PROPS.GetString("swagger.path", "") LINKERICON = filepath.Join(SWAGGERPATH, "images/mora.ico") // New, shared session manager, seprate DAO layer MONGOALIAS = PROPS.GetString("db.alias", "dev") sessMng := session.NewSessionManager(PROPS.FilterPrefix("mongod."), MONGOALIAS) defer sessMng.CloseAll() dao.DAO = &dao.Dao{SessMng: sessMng, MongoAlias: MONGOALIAS} common.UTIL = &common.Util{Props: PROPS} // accept and respond in JSON unless told otherwise restful.DefaultRequestContentType(restful.MIME_JSON) restful.DefaultResponseContentType(restful.MIME_JSON) // gzip if accepted restful.DefaultContainer.EnableContentEncoding(true) // faster router restful.DefaultContainer.Router(restful.CurlyRouter{}) // no need to access body more than once restful.SetCacheReadEntity(false) // API Cross-origin requests apiCors := PROPS.GetBool("http.server.cors", false) //UserMgmt API usermgmt.Register(restful.DefaultContainer, apiCors) hostname, err := os.Hostname() if err != nil { logrus.Errorf("get hostname err is %+v", err) } endpoint := hostname + ":" + PROPS.MustGet("http.server.port") basePath := "http://" + PROPS.MustGet("http.server.host") + ":" + PROPS.MustGet("http.server.port") // Register Swagger UI swagger.InstallSwaggerService(swagger.Config{ WebServices: restful.RegisteredWebServices(), WebServicesUrl: "http://" + endpoint, ApiPath: "/apidocs.json", SwaggerPath: SWAGGERPATH, SwaggerFilePath: PROPS.GetString("swagger.file.path", ""), }) // If swagger is not on `/` redirect to it if SWAGGERPATH != "/" { http.HandleFunc("/", index) } // Serve favicon.ico http.HandleFunc("/favion.ico", icon) logrus.Infof("ready to serve on %s", basePath) logrus.Fatal(http.ListenAndServe(PROPS.MustGet("http.server.host")+":"+PROPS.MustGet("http.server.port"), nil)) }
func main() { // Swagger configuration SwaggerPath = Props.GetString("swagger.path", "") LinkerIcon = filepath.Join(SwaggerPath, "images/mora.ico") // TODO: Check mongo flag, if mongo is set by flag, using mongo flag fmt.Println("call deployment enabled:", Props.GetBool("call.deployment", false)) // New, shared session manager, seprate DAO layer MongoAlias = Props.GetString("db.alias", "dev") sessMng := session.NewSessionManager(Props.FilterPrefix("mongod."), MongoAlias) defer sessMng.CloseAll() dao.DAO = &dao.Dao{SessMng: sessMng, MongoAlias: MongoAlias} fmt.Println(dao.DAO.MongoAlias) lbClient := common.LbClient{ Host: Props.MustGetString("lb.host"), } common.UTIL = &common.Util{LbClient: &lbClient, Props: Props} // accept and respond in JSON unless told otherwise restful.DefaultRequestContentType(restful.MIME_JSON) restful.DefaultResponseContentType(restful.MIME_JSON) // gzip if accepted restful.DefaultContainer.EnableContentEncoding(true) // faster router restful.DefaultContainer.Router(restful.CurlyRouter{}) // no need to access body more than once restful.SetCacheReadEntity(false) // API Cross-origin requests apiCors := Props.GetBool("http.server.cors", false) // Documents API documents.Register(restful.DefaultContainer, apiCors) // Check hostname flag, if hostname is set by flag, using hostname if strings.TrimSpace(Hostname) == "" { hostname, err := os.Hostname() if err != nil { logrus.Errorf("get hostname err is %+v", err) } Hostname = hostname } endpoint := Hostname + ":" + Props.MustGet("http.server.port") basePath := "http://" + Props.MustGet("http.server.host") + ":" + Props.MustGet("http.server.port") // Register Swagger UI swagger.InstallSwaggerService(swagger.Config{ WebServices: restful.RegisteredWebServices(), WebServicesUrl: "http://" + endpoint, ApiPath: "/apidocs.json", SwaggerPath: SwaggerPath, SwaggerFilePath: Props.GetString("swagger.file.path", ""), }) // If swagger is not on `/` redirect to it if SwaggerPath != "/" { http.HandleFunc("/", index) } // Serve favicon.ico http.HandleFunc("/favion.ico", icon) logrus.Infof("ready to serve on %s", basePath) logrus.Fatal(http.ListenAndServe(Props.MustGet("http.server.host")+":"+Props.MustGet("http.server.port"), nil)) // router := NewRouter().StrictSlash(true) // logrus.Fatal(http.ListenAndServe(Props["http.server.host"]+":"+Props["http.server.port"], router)) }