- Создана новая структура проекта с разделением на пакеты - Добавлены интерфейсы для всех сервисов (Git, Quartz, Files, Build) - Реализован Dependency Injection для сервисов - Добавлены middleware для логирования, Request ID и Response Time - Создан пакет конфигурации с валидацией - Улучшено логирование через интерфейс - Добавлены обработчики HTTP в отдельных пакетах - Создана структура для тестирования - Добавлены конфигурационные файлы и документация
31 lines
777 B
Go
31 lines
777 B
Go
package api
|
|
|
|
import (
|
|
"github.com/gin-gonic/gin"
|
|
"go-webhook-server/internal/handlers"
|
|
"go-webhook-server/internal/middleware"
|
|
"go-webhook-server/pkg/logger"
|
|
)
|
|
|
|
// SetupRoutes настраивает все роуты приложения
|
|
func SetupRoutes(
|
|
webhookHandler *handlers.WebhookHandler,
|
|
healthHandler *handlers.HealthHandler,
|
|
log logger.Logger,
|
|
) *gin.Engine {
|
|
// Настраиваем Gin
|
|
gin.SetMode(gin.ReleaseMode)
|
|
router := gin.New()
|
|
|
|
// Добавляем middleware
|
|
router.Use(middleware.RequestIDMiddleware())
|
|
router.Use(middleware.ResponseTimeMiddleware())
|
|
router.Use(middleware.LoggingMiddleware(log))
|
|
|
|
// Роуты
|
|
router.POST("/webhook", webhookHandler.HandleWebhook)
|
|
router.GET("/health", healthHandler.HandleHealth)
|
|
|
|
return router
|
|
}
|