http.go 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. package http
  2. import (
  3. "net/http"
  4. "go-common/app/interface/main/app-show/conf"
  5. "go-common/app/interface/main/app-show/service/banner"
  6. "go-common/app/interface/main/app-show/service/daily"
  7. pingSvr "go-common/app/interface/main/app-show/service/ping"
  8. "go-common/app/interface/main/app-show/service/rank"
  9. "go-common/app/interface/main/app-show/service/region"
  10. "go-common/app/interface/main/app-show/service/show"
  11. "go-common/library/ecode"
  12. "go-common/library/log"
  13. bm "go-common/library/net/http/blademaster"
  14. "go-common/library/net/http/blademaster/middleware/auth"
  15. "go-common/library/net/http/blademaster/render"
  16. )
  17. var (
  18. // depend service
  19. authSvc *auth.Auth
  20. // self service
  21. bannerSvc *banner.Service
  22. regionSvc *region.Service
  23. showSvc *show.Service
  24. pingSvc *pingSvr.Service
  25. rankSvc *rank.Service
  26. dailySvc *daily.Service
  27. )
  28. func Init(c *conf.Config) {
  29. initService(c)
  30. // init external router
  31. engineOut := bm.DefaultServer(c.BM.Outer)
  32. outerRouter(engineOut)
  33. // init Outer server
  34. if err := engineOut.Start(); err != nil {
  35. log.Error("engineOut.Start() error(%v) | config(%v)", err, c)
  36. panic(err)
  37. }
  38. }
  39. // initService init services.
  40. func initService(c *conf.Config) {
  41. authSvc = auth.New(nil)
  42. bannerSvc = banner.New(c)
  43. regionSvc = region.New(c)
  44. showSvc = show.New(c)
  45. pingSvc = pingSvr.New(c)
  46. rankSvc = rank.New(c)
  47. dailySvc = daily.New(c)
  48. }
  49. // outerRouter init outer router api path.
  50. func outerRouter(e *bm.Engine) {
  51. e.Ping(ping)
  52. bnnr := e.Group("/x/v2/banner", authSvc.GuestMobile)
  53. {
  54. bnnr.GET("", banners)
  55. }
  56. region := e.Group("/x/v2/region", authSvc.GuestMobile)
  57. {
  58. region.GET("", regions)
  59. region.GET("/list", regionsList)
  60. region.GET("/index", regionsIndex)
  61. region.GET("/show", regionShow)
  62. region.GET("/show/dynamic", regionShowDynamic)
  63. region.GET("/show/child", regionChildShow)
  64. region.GET("/show/child/list", regionChildListShow)
  65. region.GET("/dynamic", regionDynamic)
  66. region.GET("/dynamic/list", regionDynamicList)
  67. region.GET("/dynamic/child", regionDynamicChild)
  68. region.GET("/dynamic/child/list", regionDynamicChildList)
  69. }
  70. rank := e.Group("/x/v2/rank", authSvc.GuestMobile)
  71. {
  72. rank.GET("", rankAll)
  73. rank.GET("/region", rankRegion)
  74. }
  75. show := e.Group("/x/v2/show", authSvc.GuestMobile)
  76. {
  77. show.GET("", shows)
  78. show.GET("/region", showsRegion)
  79. show.GET("/index", showsIndex)
  80. show.GET("/widget", showWidget)
  81. show.GET("/temp", showTemps)
  82. show.GET("/change", showChange)
  83. show.GET("/change/live", showLiveChange)
  84. show.GET("/change/region", showRegionChange)
  85. show.GET("/change/bangumi", showBangumiChange)
  86. show.GET("/change/dislike", showDislike)
  87. show.GET("/change/article", showArticleChange)
  88. show.GET("/popular", popular)
  89. show.GET("/popular/index", popular2)
  90. }
  91. daily := e.Group("/x/v2/daily", authSvc.GuestMobile)
  92. {
  93. daily.GET("/list", dailyID)
  94. }
  95. column := e.Group("/x/v2/column", authSvc.GuestMobile)
  96. {
  97. column.GET("", columnList)
  98. }
  99. cg := e.Group("/x/v2/category", authSvc.GuestMobile)
  100. {
  101. cg.GET("", category)
  102. }
  103. }
  104. //returnJSON return json no message
  105. func returnJSON(c *bm.Context, data interface{}, err error) {
  106. code := http.StatusOK
  107. c.Error = err
  108. bcode := ecode.Cause(err)
  109. c.Render(code, render.JSON{
  110. Code: bcode.Code(),
  111. Message: "",
  112. Data: data,
  113. })
  114. }
  115. //returnDataJSON return json no message
  116. func returnDataJSON(c *bm.Context, data map[string]interface{}, ttl int, err error) {
  117. code := http.StatusOK
  118. if ttl < 1 {
  119. ttl = 1
  120. }
  121. if err != nil {
  122. c.JSON(nil, err)
  123. } else {
  124. if data != nil {
  125. data["code"] = 0
  126. data["message"] = ""
  127. data["ttl"] = ttl
  128. }
  129. c.Render(code, render.MapJSON(data))
  130. }
  131. }