http.go 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. package http
  2. import (
  3. "go-common/library/net/http/blademaster/middleware/auth"
  4. "net/http"
  5. "go-common/app/interface/live/app-ucenter/api/http/v1"
  6. "go-common/app/interface/live/app-ucenter/conf"
  7. "go-common/app/interface/live/app-ucenter/service"
  8. spSrv "go-common/app/interface/live/app-ucenter/service/v1"
  9. "go-common/library/log"
  10. bm "go-common/library/net/http/blademaster"
  11. "go-common/library/net/http/blademaster/middleware/verify"
  12. )
  13. var (
  14. srv *service.Service
  15. vfy *verify.Verify
  16. roomSrv *spSrv.RoomService
  17. midAuth *auth.Auth
  18. topicSrv *spSrv.TopicService
  19. raSrv *spSrv.RoomAdminService
  20. )
  21. // Init init
  22. func Init(c *conf.Config) {
  23. srv = service.New(c)
  24. vfy = verify.New(c.Verify)
  25. initService(c)
  26. engine := bm.DefaultServer(c.BM)
  27. route(engine)
  28. if err := engine.Start(); err != nil {
  29. log.Error("bm Start error(%v)", err)
  30. panic(err)
  31. }
  32. }
  33. func initService(c *conf.Config) {
  34. roomSrv = spSrv.NewRoomService(c)
  35. raSrv = spSrv.NewRoomAdminService(c)
  36. midAuth = auth.New(c.Auth)
  37. topicSrv = spSrv.NewTopicService(c)
  38. }
  39. func route(e *bm.Engine) {
  40. e.Ping(ping)
  41. e.Register(register)
  42. g := e.Group("/xlive/app-ucenter/v1")
  43. {
  44. g.GET("/start", vfy.Verify, howToStart)
  45. }
  46. v1.RegisterV1RoomService(e, roomSrv, map[string]bm.HandlerFunc{"auth": midAuth.User})
  47. v1.RegisterV1TopicService(e, topicSrv, map[string]bm.HandlerFunc{"auth": midAuth.User})
  48. v1.RegisterV1RoomAdminService(e, raSrv, map[string]bm.HandlerFunc{"auth": midAuth.User})
  49. }
  50. func ping(c *bm.Context) {
  51. if err := srv.Ping(c); err != nil {
  52. log.Error("ping error(%v)", err)
  53. c.AbortWithStatus(http.StatusServiceUnavailable)
  54. }
  55. }
  56. func register(c *bm.Context) {
  57. c.JSON(map[string]interface{}{}, nil)
  58. }
  59. // example for http request handler
  60. func howToStart(c *bm.Context) {
  61. c.String(0, "Golang 大法好 !!!")
  62. }