Files
hldrCenter/server/router/router.go
2025-10-28 15:57:22 +08:00

93 lines
3.5 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
package router
import (
"github.com/JACKYMYPERSON/hldrCenter/config"
"github.com/JACKYMYPERSON/hldrCenter/internal/article/handler/article"
"github.com/JACKYMYPERSON/hldrCenter/internal/baseoverview/handler/baseOverview"
"github.com/JACKYMYPERSON/hldrCenter/internal/devproject/handler/devproject"
"github.com/JACKYMYPERSON/hldrCenter/internal/meeting/handler/meeting"
"github.com/JACKYMYPERSON/hldrCenter/internal/pageimgs/handler/pageImage"
ping "github.com/JACKYMYPERSON/hldrCenter/internal/ping/handler/ping"
uploadimg "github.com/JACKYMYPERSON/hldrCenter/internal/upload/handler/upload"
"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()))
articles := api.Group("/articles")
{
// 1. 创建文章POST /api/articles
articles.POST("", gin.WrapH(article.CreateArticleHandler(cfg)))
// 2. 文章列表GET /api/articles
articles.POST("/getarticle", gin.WrapH(article.ListArticleHandler(cfg)))
// 3. 文章详情GET /api/articles/:id
articles.GET("/:id", gin.WrapH(article.DetailArticleHandler(cfg)))
// 4. 更新文章PUT /api/articles/:id
articles.PUT("/:id", gin.WrapH(article.UpdateArticleHandler(cfg)))
// 5. 删除文章DELETE /api/articles/:id
articles.DELETE("/:id", gin.WrapH(article.DeleteArticleHandler(cfg)))
}
baseOverviewapi := api.Group("/base-overview") // 用资源路径区分,避免与根路径冲突
{
// 获取基地概况(对应 service 中的 GET /
baseOverviewapi.GET("", gin.WrapH(baseOverview.GetBaseOverviewHandler(cfg)))
// 部分更新基地概况(对应 service 中的 PATCH /
baseOverviewapi.PATCH("", gin.WrapH(baseOverview.UpdateBaseOverviewPartialHandler(cfg)))
}
devprojects := api.Group("/devproject")
{
// 新增或修改项目POST /api/devproject/save
devprojects.POST("/save", gin.WrapH(devproject.SaveDevProjectHandler(cfg)))
// 查询项目详情GET /api/devproject/get
devprojects.GET("/get", gin.WrapH(devproject.GetDevProjectHandler(cfg)))
}
pageImages := api.Group("/page-image")
{
// 查询指定页面图片GET /api/page-image/get?page=home
pageImages.POST("/get", gin.WrapH(pageImage.GetPageImagesHandler(cfg)))
// 新增/更新页面图片POST /api/page-image/save
pageImages.POST("/save", gin.WrapH(pageImage.SavePageImageHandler(cfg)))
}
meetings := api.Group("/meetings")
{
// 1. 创建会议POST /api/meetings
meetings.POST("", gin.WrapH(meeting.CreateMeetingHandler(cfg)))
// 2. 查询单条会议GET /api/meetings/:id
meetings.GET("/:id", gin.WrapH(meeting.GetMeetingHandler(cfg)))
// 3. 查询会议列表GET /api/meetings带分页参数
meetings.POST("/list", gin.WrapH(meeting.ListMeetingHandler(cfg)))
// 4. 更新会议PUT /api/meetings部分/全量更新)
meetings.PUT("", gin.WrapH(meeting.UpdateMeetingHandler(cfg)))
// 5. 删除会议DELETE /api/meetings/:id
meetings.DELETE("/:id", gin.WrapH(meeting.DeleteMeetingHandler(cfg)))
}
}
return r
}