feat: update template

This commit is contained in:
2026-08-19 22:05:49 +08:00
parent 0e674e9d56
commit 5a71093b0c
67 changed files with 2070 additions and 585 deletions

View File

@@ -27,23 +27,45 @@ type Registrar interface {
type Params struct {
fx.In
Jwt *middleware.JWTMiddleware
Auth *middleware.AuthMiddleware
Logger *middleware.LoggerMiddleware
JWT *middleware.JWTMiddleware
Auth *middleware.AuthMiddleware
Logger *middleware.LoggerMiddleware
AccessLog *middleware.AccessLogMiddleware
RequestContext *middleware.RequestContextMiddleware
Config *config.Config
AdminPublicRoutes []Registrar `group:"admin_public_routes"`
AdminRoutes []Registrar `group:"admin_routes"`
SiteRoutes []Registrar `group:"site_routes"`
}
func NewRouter(p Params) *chi.Mux {
func NewRouter(p Params, cfg *config.Config) *chi.Mux {
mux := chi.NewRouter()
mux.Use(p.Logger.Middleware)
// 中间件顺序很重要 洋葱模型 越靠前的中间件 包裹范围越大
// 请求进入:
//
//A 前置代码
// |
// B 前置代码
// |
// C 前置代码
// |
// Handler
// C 后置代码
// B 后置代码
//A 后置代码
//
//响应返回:
mux.Use(
p.RequestContext.Middleware,
p.Logger.Middleware,
p.AccessLog.Middleware,
)
if config.IsDev() {
// 开放静态目录
registerStaticFiles(mux)
registerStaticFiles(mux, cfg.File.UploadDir)
// 开发阶段:遍历所有已注册路由的清单接口(无鉴权)
mux.Get("/api/admin/routes", ListRoutes(mux))
@@ -57,7 +79,7 @@ func NewRouter(p Params) *chi.Mux {
r.Group(func(r chi.Router) {
// jwt 和 auth中间件
r.Use(p.Jwt.Middleware)
r.Use(p.JWT.Middleware)
r.Use(p.Auth.Middleware(mux))
// 循环挂载所有后台业务模块
@@ -76,10 +98,10 @@ func NewRouter(p Params) *chi.Mux {
return mux
}
func registerStaticFiles(r chi.Router) {
func registerStaticFiles(r chi.Router, uploadDir string) {
rootDir, _ := os.Getwd()
uploadsDir := filepath.Join(rootDir, "uploads")
uploadsDir := filepath.Join(rootDir, uploadDir)
r.Handle("/static/*", http.StripPrefix("/static/", http.FileServer(http.Dir(uploadsDir))))
}