package main import ( "context" "fmt" "time" "github.com/gin-gonic/gin" "go.uber.org/zap" ) // {{.ServiceName}}Service gère les fonctionnalités de {{.ServiceName}} type {{.ServiceName}}Service struct { logger *zap.Logger // Ajoutez vos dépendances ici } // New{{.ServiceName}}Service crée une nouvelle instance du service func New{{.ServiceName}}Service(logger *zap.Logger) *{{.ServiceName}}Service { return &{{.ServiceName}}Service{ logger: logger, } } // Exemple de méthode - remplacez par vos méthodes func (s *{{.ServiceName}}Service) Process{{.ServiceName}}(ctx context.Context, input string) (string, error) { s.logger.Info("Processing {{.ServiceName}}", zap.String("input", input)) // Implémentation de votre logique métier result := fmt.Sprintf("Processed: %s", input) s.logger.Info("{{.ServiceName}} processed successfully", zap.String("result", result)) return result, nil } // Health check pour le service func (s *{{.ServiceName}}Service) HealthCheck() error { s.logger.Debug("{{.ServiceName}} health check") // Implémentation du health check return nil } // {{.ServiceName}}Handler gère les endpoints HTTP pour {{.ServiceName}} type {{.ServiceName}}Handler struct { service *{{.ServiceName}}Service logger *zap.Logger } // New{{.ServiceName}}Handler crée un nouveau handler func New{{.ServiceName}}Handler(service *{{.ServiceName}}Service, logger *zap.Logger) *{{.ServiceName}}Handler { return &{{.ServiceName}}Handler{ service: service, logger: logger, } } // SetupRoutes configure les routes pour ce service func (h *{{.ServiceName}}Handler) SetupRoutes(r *gin.RouterGroup) { r.GET("/{{.ServiceName}}", h.Get{{.ServiceName}}) r.POST("/{{.ServiceName}}", h.Create{{.ServiceName}}) r.PUT("/{{.ServiceName}}/:id", h.Update{{.ServiceName}}) r.DELETE("/{{.ServiceName}}/:id", h.Delete{{.ServiceName}}) } // Get{{.ServiceName}} récupère les données de {{.ServiceName}} func (h *{{.ServiceName}}Handler) Get{{.ServiceName}}(c *gin.Context) { h.logger.Info("Get {{.ServiceName}} request") // Implémentation c.JSON(200, gin.H{ "message": "Get {{.ServiceName}} endpoint", "timestamp": time.Now(), }) } // Create{{.ServiceName}} crée une nouvelle entrée func (h *{{.ServiceName}}Handler) Create{{.ServiceName}}(c *gin.Context) { h.logger.Info("Create {{.ServiceName}} request") // Implémentation c.JSON(201, gin.H{ "message": "Create {{.ServiceName}} endpoint", "timestamp": time.Now(), }) } // Update{{.ServiceName}} met à jour une entrée existante func (h *{{.ServiceName}}Handler) Update{{.ServiceName}}(c *gin.Context) { h.logger.Info("Update {{.ServiceName}} request") // Implémentation c.JSON(200, gin.H{ "message": "Update {{.ServiceName}} endpoint", "timestamp": time.Now(), }) } // Delete{{.ServiceName}} supprime une entrée func (h *{{.ServiceName}}Handler) Delete{{.ServiceName}}(c *gin.Context) { h.logger.Info("Delete {{.ServiceName}} request") // Implémentation c.JSON(200, gin.H{ "message": "Delete {{.ServiceName}} endpoint", "timestamp": time.Now(), }) }