go-common/app/job/openplatform/article/http/http.go

54 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/job/openplatform/article/conf"
"go-common/app/job/openplatform/article/service"
"go-common/library/log"
bm "go-common/library/net/http/blademaster"
)
var ajSrv *service.Service
// Init .
func Init(conf *conf.Config, srv *service.Service) {
ajSrv = srv
// init outer router
engineOuter := bm.DefaultServer(conf.BM)
outerRouter(engineOuter)
if err := engineOuter.Start(); err != nil {
log.Error("xhttp.Serve error(%v)", err)
panic(err)
}
}
// outerRouter init outer router
func outerRouter(r *bm.Engine) {
r.Ping(ping)
r.Register(register)
cr := r.Group("/sitemap")
{
cr.GET("/read/detail.xml", sitemap)
}
}
func ping(c *bm.Context) {
if err := ajSrv.Ping(c); err != nil {
log.Error("ping error(%v)", err)
c.AbortWithStatus(http.StatusServiceUnavailable)
}
}
func register(c *bm.Context) {
c.JSON(map[string]interface{}{}, nil)
}
func sitemap(c *bm.Context) {
res, l := ajSrv.SitemapXML(c)
c.Writer.Header().Set("Content-Type", "text/xml")
c.Writer.Header().Set("Content-Length", l)
c.Status(http.StatusOK)
c.Writer.Write([]byte(res))
}