package main import ( "flag" "log" "github.com/gin-gonic/gin" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" "filecloud/internal/database" "filecloud/internal/handler" "filecloud/service" _ "filecloud/docs" // 取消注释,启用 Swagger 文档 ) var ( configPath = flag.String("file", "./config.toml", "config file") ) // @title FileCloud API // @version 1.0 // @description FileCloud API documentation // @host localhost:8080 // @BasePath /api func main() { flag.Parse() logger := service.InitLogger("log", "filecloud") service.LoadConfig(*configPath) // Initialize database if err := database.InitDB(); err != nil { log.Fatal(err) } r := gin.Default() // 静态文件服务用 /static 前缀 r.Static("/static", "./public") // API routes api := r.Group("/api") { api.POST("/files", handler.UploadFile) api.GET("/files", handler.ListFiles) } // Swagger documentation r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) service.Launch() logger.Info("stop") service.Stop() log.Fatal(r.Run(":8080")) }