package babillard import ( "fmt" "log" "net/http" "git.agecem.com/agecem/babillard/v8/ui" "github.com/labstack/echo/v4" "github.com/labstack/echo/v4/middleware" ) func HandleAPIShow(c echo.Context) error { apispec := `agecem/babillard API Specifications ----- '/' | GET | Affiche l'application 'slider' '/api' | GET | Affiche les spécifications API '/api/contenu' | GET | Affiche le nom des fichiers dans 'contenu/' '/api/contenu/{filename}' | GET | Affiche le fichier 'contenu/{filename}' ----- v2 -- '/api/v2/contenu' | GET | Affiche les noms des fichiers dans 'contenu/' ` return c.String(http.StatusOK, apispec) } func RunServer(cfg Config) { log.Print("[I] Starting webserver") e := echo.New() e.Pre(middleware.AddTrailingSlash()) e.Group("").Use(middleware.StaticWithConfig(middleware.StaticConfig{ Root: "/html/", Filesystem: http.FS(ui.HTMLFS()), })) e.Group("/public/css").Use(middleware.StaticWithConfig(middleware.StaticConfig{ Root: "/css/", Filesystem: http.FS(ui.CSSFS()), })) e.Group("/public/js").Use(middleware.StaticWithConfig(middleware.StaticConfig{ Root: "/js/", Filesystem: http.FS(ui.JSFS()), })) groupAPI := e.Group("/api") contenuHandler := NewContenuHandler(cfg.ServerContenuDir) groupAPI.GET("/", HandleAPIShow) groupAPI.GET("/contenu/", contenuHandler.HandleAPIContenuList) groupAPI.GET("/contenu/:filename/", contenuHandler.HandleAPIContenuFile) groupAPI.GET("/v2/contenu/", APIv2ListContenu(cfg)) groupUI := e.Group("/ui") groupUI.GET("/contenu/:fichier/", UIContenuFichier(cfg)) e.Logger.Fatal(e.Start(fmt.Sprintf(":%d", cfg.ServerPort))) }