api.go 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. package api
  2. import (
  3. "baize_scaffold/gateway/gw/api/root"
  4. v1 "baize_scaffold/gateway/gw/api/v1"
  5. "baize_scaffold/gateway/gw/config"
  6. "git.sxidc.com/go-framework/baize"
  7. "git.sxidc.com/go-framework/baize/framework/core/application"
  8. "git.sxidc.com/go-framework/baize/framework/gateway"
  9. )
  10. var appInstance *application.App
  11. var gatewayInstance *gateway.Gateway
  12. func NewGateway() {
  13. if appInstance != nil {
  14. return
  15. }
  16. appInstance = baize.NewApplication(config.GetGatewayConfig().ApplicationConfig)
  17. // 注册Router
  18. appInstance.Api().PrefixRouter().RegisterVersionedRouter("v1")
  19. // 创建gateway
  20. gatewayInstance = gateway.NewGateway(appInstance.Api())
  21. root.Init(gatewayInstance)
  22. v1.Init(gatewayInstance)
  23. }
  24. func DestroyGateway() {
  25. if appInstance == nil {
  26. return
  27. }
  28. gateway.DestroyGateway(gatewayInstance)
  29. gatewayInstance = nil
  30. baize.DestroyApplication(appInstance)
  31. appInstance = nil
  32. }
  33. func Start() error {
  34. err := appInstance.Start()
  35. if err != nil {
  36. return err
  37. }
  38. return nil
  39. }
  40. func Finish() error {
  41. err := appInstance.Finish()
  42. if err != nil {
  43. return err
  44. }
  45. return nil
  46. }