diff --git a/cmd/api/api_server.go b/cmd/api/api_server.go index 6a999957..bf1e7eea 100644 --- a/cmd/api/api_server.go +++ b/cmd/api/api_server.go @@ -16,6 +16,7 @@ import ( "github.com/fagongzi/gateway/pkg/util" "github.com/fagongzi/grpcx" "github.com/fagongzi/log" + "github.com/labstack/echo" "google.golang.org/grpc" ) @@ -28,6 +29,8 @@ var ( servicePrefix = flag.String("service-prefix", "/services", "The prefix for service name.") publishLease = flag.Int64("publish-lease", 10, "Publish service lease seconds") publishTimeout = flag.Int("publish-timeout", 30, "Publish service timeout seconds") + ui = flag.String("ui", "/app/gateway-ui", "The gateway ui dist dir.") + uiPrefix = flag.String("ui-prefix", "/ui", "The gateway ui prefix path.") version = flag.Bool("version", false, "Show version info") ) @@ -64,7 +67,9 @@ func main() { } if *addrHTTP != "" { - opts = append(opts, grpcx.WithHTTPServer(*addrHTTP, service.InitHTTPRouter)) + opts = append(opts, grpcx.WithHTTPServer(*addrHTTP, func(server *echo.Echo) { + service.InitHTTPRouter(server, *ui, *uiPrefix) + })) } s := grpcx.NewGRPCServer(*addr, func(svr *grpc.Server) []grpcx.Service { diff --git a/pkg/service/http.go b/pkg/service/http.go index c2de626b..ab1c1c0d 100644 --- a/pkg/service/http.go +++ b/pkg/service/http.go @@ -12,12 +12,13 @@ const ( ) // InitHTTPRouter init http router -func InitHTTPRouter(server *echo.Echo) { +func InitHTTPRouter(server *echo.Echo, ui, uiPrefix string) { initClusterRouter(server) initServerRouter(server) initBindRouter(server) initRoutingRouter(server) initAPIRouter(server) + initStatic(server, ui, uiPrefix) } type limitQuery struct { diff --git a/pkg/service/http_static.go b/pkg/service/http_static.go new file mode 100644 index 00000000..be7d654c --- /dev/null +++ b/pkg/service/http_static.go @@ -0,0 +1,9 @@ +package service + +import ( + "github.com/labstack/echo" +) + +func initStatic(server *echo.Echo, ui, uiPrefix string) { + server.Static(uiPrefix, ui) +}