package main import ( "flag" "fmt" "log" "bff/internal/config" "bff/internal/dialer" "bff/internal/response" "pkg.local/discovery" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/gateway" ) var configFile = flag.String("f", "etc/bff.yaml", "the config file") func main() { flag.Parse() var c config.Config conf.MustLoad(*configFile, &c) response.Init(c.Response.IsDebug, c.Response.EncryptKey) if err := discovery.Init(discovery.Config{ Hosts: c.Nacos.Hosts, NamespaceId: c.Nacos.NamespaceId, Group: c.Nacos.Group, }); err != nil { log.Fatalf("nacos init: %v", err) } registerIP := c.Nacos.RegisterIP if err := discovery.Register(discovery.Instance{ ServiceName: c.Name, IP: registerIP, Port: uint64(c.Port), Group: c.Nacos.Group, }); err != nil { log.Fatalf("nacos register: %v", err) } defer func() { if err := discovery.Deregister(); err != nil { log.Printf("nacos deregister: %v", err) } }() gw := gateway.MustNewServer(c.GatewayConf, gateway.WithDialer(dialer.Nacos), // 权鉴 gateway.WithMiddleware(response.UserReadMiddleware), gateway.WithMiddleware(response.Wrap), ) defer gw.Stop() fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port) gw.Start() }