udeserver.go 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. // Code scaffolded by goctl. Safe to edit.
  2. // goctl 1.10.2
  3. package main
  4. import (
  5. "flag"
  6. "fmt"
  7. "udeServer/internal/config"
  8. "udeServer/internal/handler"
  9. "udeServer/internal/log"
  10. "udeServer/internal/response"
  11. "udeServer/internal/svc"
  12. "udeServer/internal/task"
  13. "github.com/zeromicro/go-zero/core/conf"
  14. "github.com/zeromicro/go-zero/rest"
  15. )
  16. var configFile = flag.String("f", "etc/udeserver-api.yaml", "the config file")
  17. func main() {
  18. flag.Parse()
  19. var c config.Config
  20. conf.MustLoad(*configFile, &c)
  21. // 彩色控制台日志(Log.Mode=console 时生效)
  22. log.SetupLoggerWithColor(c.Log)
  23. // 所有成功/失败响应统一封装为 {"code":100000/100xxx,"message":...,"data":...},
  24. // HTTP 状态恒为 200;必须在 server.Start 之前注册。
  25. response.Register()
  26. // rest.WithCors() 解决跨域
  27. server := rest.MustNewServer(c.RestConf, rest.WithCors())
  28. defer server.Stop()
  29. ctx := svc.NewServiceContext(c)
  30. // 注册全局审计日志中间件(type=1 系统日志;在路由注册前 Use)
  31. server.Use(ctx.LogMiddleware)
  32. handler.RegisterHandlers(server, ctx)
  33. // 注册定时任务(每日 00:30 自动归档)
  34. go task.StartScheduler(ctx)
  35. fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port)
  36. server.Start()
  37. }