package api import ( "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" "github.com/urfave/cli/v2" "gitrepo.ru/neonxp/idecnode/pkg/apiv1" "gitrepo.ru/neonxp/idecnode/pkg/apiv2" "gitrepo.ru/neonxp/idecnode/pkg/config" "gitrepo.ru/neonxp/idecnode/pkg/idec" ) var APICommand *cli.Command = &cli.Command{ Name: "api", Description: "Start api server", Action: func(c *cli.Context) error { configPath := c.String("config") cfg, err := config.New(configPath) if err != nil { return err } idecApi, err := idec.New(cfg) if err != nil { return err } defer idecApi.Close() e := echo.New() e.Use( middleware.Recover(), middleware.Logger(), ) apiv1.New(idecApi, cfg).Register(e) apiv2.New(idecApi, cfg).Register(e) e.Static("/", "./web/dist") return e.Start(cfg.Listen) }, Flags: []cli.Flag{ &cli.StringFlag{ Name: "config", DefaultText: "config path", Value: "./etc/node.yaml", }, }, }