http.go 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package http
  2. import (
  3. "net/http"
  4. dmv1pb "go-common/app/interface/live/open-interface/api/http/v1"
  5. "go-common/app/interface/live/open-interface/internal/service"
  6. "go-common/library/conf/paladin"
  7. "go-common/library/log"
  8. bm "go-common/library/net/http/blademaster"
  9. "go-common/library/net/http/blademaster/middleware/verify"
  10. )
  11. var (
  12. svc *service.Service
  13. )
  14. // New new a bm server.
  15. func New(s *service.Service) (engine *bm.Engine) {
  16. var (
  17. hc struct {
  18. Server *bm.ServerConfig
  19. }
  20. )
  21. if err := paladin.Get("http.toml").UnmarshalTOML(&hc); err != nil {
  22. if err != paladin.ErrNotExist {
  23. panic(err)
  24. }
  25. }
  26. svc = s
  27. engine = bm.DefaultServer(hc.Server)
  28. initRouter(engine, verify.New(nil))
  29. if err := engine.Start(); err != nil {
  30. panic(err)
  31. }
  32. return
  33. }
  34. func initRouter(e *bm.Engine, v *verify.Verify) {
  35. e.Ping(ping)
  36. e.Register(register)
  37. g := e.Group("/x/open-interface")
  38. {
  39. g.GET("/start", v.Verify, howToStart)
  40. }
  41. dmv1pb.RegisterDmBMServer(e, svc)
  42. }
  43. func ping(ctx *bm.Context) {
  44. if err := svc.Ping(ctx); err != nil {
  45. log.Error("ping error(%v)", err)
  46. ctx.AbortWithStatus(http.StatusServiceUnavailable)
  47. }
  48. }
  49. func register(c *bm.Context) {
  50. c.JSON(map[string]interface{}{}, nil)
  51. }
  52. // example for http request handler.
  53. func howToStart(c *bm.Context) {
  54. c.String(0, "Golang 大法好 !!!")
  55. }