package router import ( "github.com/JACKYMYPERSON/hldrCenter/config" "github.com/JACKYMYPERSON/hldrCenter/internal/handler/article" ping "github.com/JACKYMYPERSON/hldrCenter/internal/handler/ping" uploadimg "github.com/JACKYMYPERSON/hldrCenter/internal/handler/uploadimg" "github.com/JACKYMYPERSON/hldrCenter/middleware" "github.com/gin-gonic/gin" ) // SetupRouter 初始化路由 func SetupRouter(cfg *config.Config) *gin.Engine { r := gin.Default() // 关键:跨域中间件必须在所有路由定义之前应用 r.Use(middleware.CorsMiddleware(&cfg.Server)) // 定义路由组(必须在中间件之后) api := r.Group("/api") { api.POST("/upload/image", uploadimg.UploadImageHandler(cfg)) api.POST("/upload/cover", uploadimg.UploadImageHandler(cfg)) api.GET("/ping", gin.WrapF(ping.PingHandler(cfg))) articles := api.Group("/articles") { // 1. 创建文章(POST /api/articles) articles.POST("", gin.WrapH(article.CreateArticleHandler(svcCtx))) // 2. 文章列表(GET /api/articles) articles.GET("", gin.WrapH(article.ListArticleHandler(svcCtx))) // 3. 文章详情(GET /api/articles/:id) articles.GET("/:id", gin.WrapH(article.DetailArticleHandler(svcCtx))) // 4. 更新文章(PUT /api/articles/:id) articles.PUT("/:id", gin.WrapH(article.UpdateArticleHandler(svcCtx))) // 5. 删除文章(DELETE /api/articles/:id) articles.DELETE("/:id", gin.WrapH(article.DeleteArticleHandler(svcCtx))) } } return r }