2025-10-04 20:48:50 +08:00
|
|
|
|
package router
|
|
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/config"
|
2025-10-05 01:46:48 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/internal/handler/article"
|
|
|
|
|
|
ping "github.com/JACKYMYPERSON/hldrCenter/internal/handler/ping"
|
|
|
|
|
|
uploadimg "github.com/JACKYMYPERSON/hldrCenter/internal/handler/uploadimg"
|
2025-10-04 21:18:35 +08:00
|
|
|
|
"github.com/JACKYMYPERSON/hldrCenter/middleware"
|
2025-10-04 20:48:50 +08:00
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
// SetupRouter 初始化路由
|
|
|
|
|
|
func SetupRouter(cfg *config.Config) *gin.Engine {
|
|
|
|
|
|
r := gin.Default()
|
|
|
|
|
|
|
2025-10-04 21:18:35 +08:00
|
|
|
|
// 关键:跨域中间件必须在所有路由定义之前应用
|
|
|
|
|
|
r.Use(middleware.CorsMiddleware(&cfg.Server))
|
|
|
|
|
|
|
|
|
|
|
|
// 定义路由组(必须在中间件之后)
|
2025-10-04 20:48:50 +08:00
|
|
|
|
api := r.Group("/api")
|
|
|
|
|
|
{
|
2025-10-05 01:46:48 +08:00
|
|
|
|
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)))
|
|
|
|
|
|
}
|
2025-10-04 20:48:50 +08:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return r
|
|
|
|
|
|
}
|