modelRT/router/router.go

30 lines
806 B
Go

// Package router provides router config
package router
import (
"time"
"modelRT/middleware"
"github.com/gin-gonic/gin"
)
var measurementLimiter *middleware.Limiter
func init() {
// set a rate limiter to allow a maximum of 2 requests per second for measurement group api
measurementLimiter = middleware.NewLimiter(2, 1*time.Second)
}
// RegisterRoutes define func of register all routes
func RegisterRoutes(engine *gin.Engine, clientToken string) {
// use global middlewares
engine.Use(middleware.StartTrace())
routeGroup := engine.Group("")
registerDiagramRoutes(routeGroup)
registerAttrRoutes(routeGroup)
registerMeasurementRoutes(routeGroup, middleware.SetTokenMiddleware(clientToken), measurementLimiter.Middleware)
registerDataRoutes(routeGroup)
registerMonitorRoutes(routeGroup)
}