// Package router 装配 Gin 统一接入层的路由与中间件。 package router import ( "github.com/gin-gonic/gin" "github.com/sundynix/sundynix-gateway/internal/handler" "github.com/sundynix/sundynix-gateway/internal/middleware" "github.com/sundynix/sundynix-gateway/internal/nats" "github.com/sundynix/sundynix-gateway/internal/store" ) // New 构建带有 Guardrail / 限流中间件的 Gin 引擎。 func New(db *store.Postgres, cache *store.Redis, bus *nats.Bus) *gin.Engine { r := gin.Default() r.Use(middleware.RateLimit(cache)) r.Use(middleware.Guardrail()) // Harness: Input/Output Guardrail h := handler.New(db, cache, bus) api := r.Group("/api/v1") { api.POST("/tasks", h.SubmitTask) // 1. 解析 DSL 并 Publish 到 NATS api.GET("/tasks/:id/stream", h.StreamTask) // 4. SSE/WS 回流 Token Stream api.GET("/billing", h.Billing) } return r }