// Code scaffolded by goctl. Safe to edit. // goctl 1.9.2 package main import ( "flag" "fmt" "net/http" "github.com/youruser/base/internal/config" "github.com/youruser/base/internal/handler" authhandler "github.com/youruser/base/internal/handler/auth" "github.com/youruser/base/internal/svc" "github.com/zeromicro/go-zero/core/conf" "github.com/zeromicro/go-zero/rest" ) var configFile = flag.String("f", "etc/base-api.yaml", "the config file") func main() { flag.Parse() var c config.Config conf.MustLoad(*configFile, &c) server := rest.MustNewServer(c.RestConf, rest.WithCors("*")) defer server.Stop() ctx := svc.NewServiceContext(c) handler.RegisterHandlers(server, ctx) // 注册 SSO 路由(手动注册,因为 callback 需要 302 重定向而非 JSON 响应) server.AddRoutes( rest.WithMiddlewares( []rest.Middleware{ctx.Cors, ctx.Log}, []rest.Route{ { Method: http.MethodGet, Path: "/auth/sso/login-url", Handler: authhandler.GetSSOLoginUrlHandler(ctx), }, { Method: http.MethodGet, Path: "/auth/sso/callback", Handler: authhandler.SSOCallbackHandler(ctx), }, }..., ), rest.WithPrefix("/api/v1"), ) fmt.Printf("Starting server at %s:%d...\n", c.Host, c.Port) server.Start() }