123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- 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"))
- }
|