2025-08-29 15:24:21 +08:00
|
|
|
// Package router provides router config
|
2025-07-31 10:31:26 +08:00
|
|
|
package router
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"time"
|
|
|
|
|
|
|
|
|
|
"modelRT/middleware"
|
|
|
|
|
|
|
|
|
|
"github.com/gin-gonic/gin"
|
|
|
|
|
)
|
|
|
|
|
|
2025-12-17 14:12:35 +08:00
|
|
|
var measurementLimiter *middleware.Limiter
|
2025-07-31 10:31:26 +08:00
|
|
|
|
|
|
|
|
func init() {
|
2025-12-17 14:12:35 +08:00
|
|
|
// set a rate limiter to allow a maximum of 2 requests per second for measurement group api
|
|
|
|
|
measurementLimiter = middleware.NewLimiter(2, 1*time.Second)
|
2025-07-31 10:31:26 +08:00
|
|
|
}
|
|
|
|
|
|
2025-08-29 15:24:21 +08:00
|
|
|
// RegisterRoutes define func of register all routes
|
2025-09-12 17:12:02 +08:00
|
|
|
func RegisterRoutes(engine *gin.Engine, clientToken string) {
|
2025-07-31 10:31:26 +08:00
|
|
|
// use global middlewares
|
2025-12-17 14:12:35 +08:00
|
|
|
engine.Use(middleware.StartTrace())
|
2025-07-31 10:31:26 +08:00
|
|
|
routeGroup := engine.Group("")
|
|
|
|
|
registerDiagramRoutes(routeGroup)
|
2025-08-29 15:24:21 +08:00
|
|
|
registerAttrRoutes(routeGroup)
|
2025-12-17 14:12:35 +08:00
|
|
|
registerMeasurementRoutes(routeGroup, middleware.SetTokenMiddleware(clientToken), measurementLimiter.Middleware)
|
2025-10-24 16:52:14 +08:00
|
|
|
registerDataRoutes(routeGroup)
|
2025-11-03 17:35:03 +08:00
|
|
|
registerMonitorRoutes(routeGroup)
|
2025-07-31 10:31:26 +08:00
|
|
|
}
|