package routers import ( "beacon/config" _ "beacon/docs" "beacon/middleware" "beacon/pkg/logger" "beacon/routers/handlers" "github.com/gin-gonic/gin" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" ) func Init() *gin.Engine { // 基于获取引擎对象(路由对象) r := gin.New() r.Use(middleware.GinLogger(logger.Lg)) r.Use(middleware.GinRecovery(logger.Lg, false)) //r.Use(middleware.AntiCrawlingStrategy()) // 反爬虫策略 r.Use(middleware.CSRFMiddleware) //r.Use(middleware.JwtAuthMiddleware()) // 用户认证 // 设置自定义 404 页面 r.NoRoute(func(c *gin.Context) { // 您可以使用 HTML 模板文件 //c.HTML(404, "404.html", gin.H{ // "title": "Page Not Found", //}) // 或者,您可以直接返回 HTML 代码 c.Data(404, "text/html", []byte(` 404 Not Found

404

Page Not Found

The page you are looking for does not exist or has been moved.

You can go back to the homepage or contact us if you need assistance.

`)) }) // 路由分组 v1 := r.Group(config.Conf.Version) SetupCompositeCaseRoutes(v1) SetupWorkflowRoutes(v1) SetupTestRoutes(v1) // 添加 Swagger 中间件 r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) return r } func SetupCompositeCaseRoutes(group *gin.RouterGroup) { // 初始化服务和处理器 //var handler *handlers.CompositeCaseHandler handler := *handlers.NewCompositeCaseHandler() api := group.Group("/api") { // 复合案例相关路由 api.POST("/composite-cases", handler.CreateCompositeCase) api.GET("/composite-cases", handler.ListCompositeCases) api.GET("/composite-cases/:id", handler.GetCompositeCase) api.PUT("/composite-cases/:id", handler.UpdateCompositeCase) api.DELETE("/composite-cases/:id", handler.DeleteCompositeCase) } } func SetupWorkflowRoutes(group *gin.RouterGroup) { // 初始化服务和处理器 handler := *handlers.NewWorkflowHandler() api := group.Group("/api") { // 工作流相关路由 api.POST("/workflows/start", handler.StartWorkflow) api.GET("/workflows/:id", handler.GetWorkflowStatus) api.GET("/workflows/:id/results", handler.GetWorkflowResults) } } func SetupTestRoutes(group *gin.RouterGroup) { // 测试相关路由 testHandler := handlers.NewTestHandler() api := group.Group("/api") { api.POST("/test/test-endpoint", testHandler.TestEndpoint) api.POST("/test/core-transfer", testHandler.CoreTransferEndpoint) } }