ai_scheduler/internal/handlers/router.go

43 lines
940 B
Go

package handlers
import (
"ai_scheduler/pkg/types"
"github.com/gin-gonic/gin"
swaggerFiles "github.com/swaggo/files"
ginSwagger "github.com/swaggo/gin-swagger"
)
// SetupRoutes 设置路由
func SetupRoutes(routerService types.RouterService) *gin.Engine {
r := gin.Default()
// 添加CORS中间件
r.Use(func(c *gin.Context) {
c.Header("Access-Control-Allow-Origin", "*")
c.Header("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS")
c.Header("Access-Control-Allow-Headers", "Content-Type, Authorization")
if c.Request.Method == "OPTIONS" {
c.AbortWithStatus(204)
return
}
c.Next()
})
// 创建处理器
chatHandler := NewChatHandler(routerService)
// 健康检查
r.GET("/health", chatHandler.Health)
// API路由组
v1 := r.Group("/api/v1")
{
v1.POST("/chat", chatHandler.Chat)
}
// Swagger文档
r.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
return r
}