feat: update template
This commit is contained in:
@@ -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))))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user