main.go 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package main
  2. import (
  3. "context"
  4. "flag"
  5. "fmt"
  6. "github.com/go-nunu/nunu-layout-advanced/cmd/server/wire"
  7. "github.com/go-nunu/nunu-layout-advanced/pkg/config"
  8. "github.com/go-nunu/nunu-layout-advanced/pkg/log"
  9. "go.uber.org/zap"
  10. )
  11. // @title Nunu Example API
  12. // @version 1.0.0
  13. // @description This is a sample server celler server.
  14. // @termsOfService http://swagger.io/terms/
  15. // @contact.name API Support
  16. // @contact.url http://www.swagger.io/support
  17. // @contact.email support@swagger.io
  18. // @license.name Apache 2.0
  19. // @license.url http://www.apache.org/licenses/LICENSE-2.0.html
  20. // @host localhost:8000
  21. // @securityDefinitions.apiKey Bearer
  22. // @in header
  23. // @name Authorization
  24. // @externalDocs.description OpenAPI
  25. // @externalDocs.url https://swagger.io/resources/open-api/
  26. func main() {
  27. var envConf = flag.String("conf", "config/local.yml", "config path, eg: -conf ./config/local.yml")
  28. flag.Parse()
  29. conf := config.NewConfig(*envConf)
  30. // 检查是否有环境变量指定服务类型
  31. serviceType := log.API
  32. logger := log.NewServiceLog(conf, serviceType)
  33. app, cleanup, err := wire.NewWire(conf, logger)
  34. defer cleanup()
  35. if err != nil {
  36. panic(err)
  37. }
  38. logger.Info("server start", zap.String("host", fmt.Sprintf("http://%s:%d", conf.GetString("http.host"), conf.GetInt("http.port"))))
  39. logger.Info("docs addr", zap.String("addr", fmt.Sprintf("http://%s:%d/swagger/index.html", conf.GetString("http.host"), conf.GetInt("http.port"))))
  40. if err = app.Run(context.Background()); err != nil {
  41. panic(err)
  42. }
  43. }