go-common/app/interface/main/kvo/http/http.go

50 lines
1.1 KiB
Go
Raw Normal View History

2019-04-22 10:49:16 +00:00
package http
import (
"net/http"
"go-common/app/interface/main/kvo/conf"
"go-common/app/interface/main/kvo/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/auth"
)
var (
kvoSvr *service.Service
authSvr *auth.Auth
)
// Init init http
func Init(c *conf.Config) {
kvoSvr = service.New(c)
authSvr = auth.New(c.Auth)
// init outer router
engineOut := bm.DefaultServer(c.BM)
outerRouter(engineOut)
if err := engineOut.Start(); err != nil {
log.Error("engineOut.Start error(%v)", err)
panic(err)
}
}
func outerRouter(e *bm.Engine) {
e.Ping(ping)
group := e.Group("/x/kvo", bm.CORS())
{
group.GET("/web/doc/get", authSvr.UserWeb, doc)
group.POST("/web/doc/add", authSvr.UserWeb, addDoc)
group.GET("/app/doc/get", authSvr.UserMobile, doc)
group.POST("/app/doc/add", authSvr.UserMobile, addDoc)
}
}
// ping check server ok.
func ping(c *bm.Context) {
var err error
if err = kvoSvr.Ping(c); err != nil {
log.Error("kvo service ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}