package http import ( "cicv-data-closedloop/amd64/web_server/src/infrastructure/config" "cicv-data-closedloop/amd64/web_server/src/interfaces/api" "cicv-data-closedloop/common/config/c_log" "cicv-data-closedloop/common/gin/middleware" "github.com/gin-gonic/gin" "os" ) func CreateServer() { // 创建 gin 实例 router := gin.Default() // 使用中间件 router.Use(middleware.Cors()) // 解决cors router.Use(middleware.LogRequest()) // 请求日志打印 router.Use(middleware.ValidateHeaders(config.ApplicationYaml.Web.WhiteList, config.ApplicationYaml.Web.Token)) // 全局请求头校验 // 通过路由组设置全局前缀 webPrefix := router.Group(config.ApplicationYaml.Web.RoutePrefix) { examPrefix := webPrefix.Group("/exam") { examPrefix.POST("/tick", api.Tick) // 考试开始 go api.ExamEndTicker() // 考试结束 examPrefix.POST("/display", api.Display) // 云控展示线上评分 examPrefix.POST("/page", api.Page) // 分页查询 examPrefix.POST("/report", api.Report) // pdf下载 examPrefix.POST("/offline", api.Offline) // 录入线下成绩 } } { monitorPrefix := webPrefix.Group("/monitor") { monitorPrefix.POST("/insert", api.SaveDeviceMonitor) } } { collectLimitPrefix := webPrefix.Group("/collect_limit") { collectLimitPrefix.POST("/can_collect", api.TriggerCollect) collectLimitPrefix.POST("/plus_collect_num", api.CanCollectPlus) } } // 端口 err := router.Run(":" + config.ApplicationYaml.Web.Port) if err != nil { c_log.GlobalLogger.Error("程序崩溃,监听端口 "+config.ApplicationYaml.Web.Port+" 失败:", err) os.Exit(-1) } }