Files
go-common/app/service/main/spy/server/http/http.go
2019-04-22 18:49:16 +08:00

59 lines
1.2 KiB
Go

package http
import (
"net/http"
"go-common/app/service/main/spy/conf"
"go-common/app/service/main/spy/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
"go-common/library/net/http/blademaster/middleware/verify"
)
var (
spySvc *service.Service
verifyN *verify.Verify
)
// Init init http server.
func Init(c *conf.Config, s *service.Service) {
spySvc = s
verifyN = verify.New(nil)
// init inner router
engineInner := bm.DefaultServer(c.BM)
innerRouter(engineInner)
// init local server
if err := engineInner.Start(); err != nil {
log.Error("xhttp.Serve error(%v)", err)
panic(err)
}
}
// innerRouter init inner router.
func innerRouter(e *bm.Engine) {
// health check
e.Ping(ping)
e.Register(register)
//new defined api lists
group := e.Group("/x/internal/v1/spy", verifyN.Verify)
{
group.GET("/info", info)
group.GET("/purge", purgeUser)
group.POST("/purge2", purgeUser2)
group.GET("/stat", stat)
}
}
// ping check server ok.
func ping(c *bm.Context) {
if spySvc.Ping(c) != nil {
log.Error("spy-service service ping error")
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
// register check server ok.
func register(c *bm.Context) {
c.JSON(map[string]interface{}{}, nil)
}