You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.4 KiB
91 lines
2.4 KiB
package http |
|
|
|
import ( |
|
"go-common/app/interface/main/web-show/conf" |
|
"go-common/app/interface/main/web-show/service/job" |
|
"go-common/app/interface/main/web-show/service/operation" |
|
res "go-common/app/interface/main/web-show/service/resource" |
|
"go-common/library/log" |
|
bm "go-common/library/net/http/blademaster" |
|
"go-common/library/net/http/blademaster/middleware/auth" |
|
"go-common/library/net/http/blademaster/middleware/cache" |
|
"go-common/library/net/http/blademaster/middleware/cache/store" |
|
"go-common/library/net/http/blademaster/middleware/verify" |
|
) |
|
|
|
var ( |
|
jobSvc *job.Service |
|
opSvc *operation.Service |
|
vfySvr *verify.Verify |
|
authSvr *auth.Auth |
|
resSvc *res.Service |
|
|
|
// cache components |
|
cacheSvr *cache.Cache |
|
deg *cache.Degrader |
|
) |
|
|
|
// Init int http service |
|
func Init(c *conf.Config) { |
|
initService(c) |
|
// init external router |
|
cacheSvr = cache.New(store.NewMemcache(c.DegradeConfig.Memcache)) |
|
deg = cache.NewDegrader(c.DegradeConfig.Expire) |
|
engineOut := bm.DefaultServer(c.BM.Outer) |
|
outerRouter(engineOut) |
|
// init Outer serve |
|
if err := engineOut.Start(); err != nil { |
|
log.Error("engineOut.Start error(%v)", err) |
|
panic(err) |
|
} |
|
engineLocal := bm.DefaultServer(c.BM.Local) |
|
localRouter(engineLocal) |
|
// init Outlocaler serve |
|
if err := engineLocal.Start(); err != nil { |
|
log.Error("engineLocal.Start error(%v)", err) |
|
panic(err) |
|
} |
|
} |
|
|
|
// initService init service |
|
func initService(c *conf.Config) { |
|
authSvr = auth.New(c.Auth) |
|
vfySvr = verify.New(c.Verify) |
|
jobSvc = job.New(c) |
|
opSvc = operation.New(c) |
|
resSvc = res.New(c) |
|
} |
|
|
|
//CloseService close all service |
|
func CloseService() { |
|
jobSvc.Close() |
|
opSvc.Close() |
|
} |
|
|
|
// outerRouter init outer router api path. |
|
func outerRouter(e *bm.Engine) { |
|
// init api |
|
e.Ping(ping) |
|
group := e.Group("/x/web-show", bm.CORS()) |
|
{ |
|
group.GET("/join", join) |
|
group.GET("/notice", notice) |
|
group.GET("/promote", promote) |
|
group.GET("/res/loc", authSvr.Guest, cacheSvr.Cache(deg.Args("id", "pf"), nil), resource) |
|
group.GET("/res/locs", authSvr.Guest, cacheSvr.Cache(deg.Args("ids", "pf"), nil), resources) |
|
group.GET("/ad/video", authSvr.Guest, advideo) |
|
group.GET("/archive/relation", relation) |
|
group.GET("/urls", vfySvr.Verify, urlMonitor) |
|
} |
|
e.GET("/x/ad/video", authSvr.Guest, advideo) |
|
} |
|
|
|
// innerRouter init local router api path. |
|
func localRouter(e *bm.Engine) { |
|
group := e.Group("/x/web-show", bm.CORS()) |
|
{ |
|
group.GET("/monitor/ping", ping) |
|
group.GET("/version", version) |
|
group.GET("/gray", grayRate) |
|
} |
|
}
|
|
|