50 lines
1.2 KiB
Go
50 lines
1.2 KiB
Go
package http
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"starter-kit/internal/helper/config"
|
|
"starter-kit/internal/transport/http/handler"
|
|
"starter-kit/internal/transport/http/middleware"
|
|
)
|
|
|
|
// SetupRouter cấu hình router cho HTTP server
|
|
func SetupRouter(cfg *config.Config) *gin.Engine {
|
|
// Khởi tạo router với mode phù hợp với môi trường
|
|
if cfg.App.Environment == "production" {
|
|
gin.SetMode(gin.ReleaseMode)
|
|
}
|
|
|
|
router := gin.New()
|
|
|
|
// Logger middleware
|
|
router.Use(middleware.Logger())
|
|
|
|
// Recovery middleware
|
|
router.Use(gin.Recovery())
|
|
|
|
// CORS middleware nếu cần
|
|
// router.Use(middleware.CORS())
|
|
|
|
// Khởi tạo các handlers
|
|
healthHandler := handler.NewHealthHandler(cfg)
|
|
|
|
// Đăng ký các routes
|
|
|
|
// Health check routes
|
|
router.GET("/ping", healthHandler.Ping)
|
|
router.GET("/health", healthHandler.HealthCheck)
|
|
|
|
// API versioning - Cảnh báo: API routes hiện đang được comment out
|
|
// Khi cần sử dụng, bỏ comment đoạn code sau
|
|
/*
|
|
v1 := router.Group("/api/v1")
|
|
{
|
|
// Các API endpoints version 1
|
|
// v1.GET("/resources", resourceHandler.List)
|
|
// v1.POST("/resources", resourceHandler.Create)
|
|
}
|
|
*/
|
|
|
|
return router
|
|
}
|