创建管理后端仓库

This commit is contained in:
2025-03-15 16:07:45 +08:00
commit 27e0ed2994
10 changed files with 861 additions and 0 deletions

54
web/web.go Normal file
View File

@@ -0,0 +1,54 @@
package web
import (
"github.com/gofiber/fiber/v2"
)
import "log/slog"
type Config struct {
Logger *slog.Logger
Listen string
}
type Server struct {
config *Config
log *slog.Logger
fiber *fiber.App
}
func New(config *Config) (*Server, error) {
_config := config
if config == nil {
_config = &Config{}
}
if _config.Logger == nil {
_config.Logger = slog.Default()
}
return &Server{
config: _config,
log: _config.Logger,
}, nil
}
func (s *Server) Run() error {
s.fiber = fiber.New(fiber.Config{})
UseRoute(s.fiber)
s.log.Info("Server started on :8080")
err := s.fiber.Listen(":8080")
if err != nil {
s.log.Error("Failed to start server", slog.Any("error", err))
}
s.log.Info("Server stopped")
return nil
}
func (s *Server) Stop() {
err := s.fiber.Shutdown()
if err != nil {
s.log.Error("Failed to shutdown server", slog.Any("error", err))
}
}