You've already forked agentic-coding-workflow
修复启动问题
This commit is contained in:
+1
-6
@@ -48,7 +48,6 @@ import (
|
|||||||
"github.com/yan1h/agent-coding-workflow/internal/project"
|
"github.com/yan1h/agent-coding-workflow/internal/project"
|
||||||
runmod "github.com/yan1h/agent-coding-workflow/internal/run"
|
runmod "github.com/yan1h/agent-coding-workflow/internal/run"
|
||||||
httpx "github.com/yan1h/agent-coding-workflow/internal/transport/http"
|
httpx "github.com/yan1h/agent-coding-workflow/internal/transport/http"
|
||||||
"github.com/yan1h/agent-coding-workflow/internal/transport/http/middleware"
|
|
||||||
"github.com/yan1h/agent-coding-workflow/internal/user"
|
"github.com/yan1h/agent-coding-workflow/internal/user"
|
||||||
"github.com/yan1h/agent-coding-workflow/internal/workspace"
|
"github.com/yan1h/agent-coding-workflow/internal/workspace"
|
||||||
)
|
)
|
||||||
@@ -112,13 +111,9 @@ func New(ctx context.Context, cfg *config.Config, dist embed.FS) (*App, error) {
|
|||||||
return db.HealthCheck(req.Context(), pool)
|
return db.HealthCheck(req.Context(), pool)
|
||||||
},
|
},
|
||||||
SPAHandler: spaHandler,
|
SPAHandler: spaHandler,
|
||||||
|
Logger: log,
|
||||||
})
|
})
|
||||||
|
|
||||||
// chi.Router 接口本身已经声明 Use,无需类型断言到 *chi.Mux。
|
|
||||||
r.Use(middleware.RequestID)
|
|
||||||
r.Use(middleware.Recover(log))
|
|
||||||
r.Use(middleware.Logger(log))
|
|
||||||
|
|
||||||
// userSvc 直接满足 middleware.SessionResolver(ResolveSession 同名同签名)。
|
// userSvc 直接满足 middleware.SessionResolver(ResolveSession 同名同签名)。
|
||||||
user.NewHandler(userSvc).Mount(r)
|
user.NewHandler(userSvc).Mount(r)
|
||||||
notify.NewHandler(notifyRepo, userSvc).Mount(r)
|
notify.NewHandler(notifyRepo, userSvc).Mount(r)
|
||||||
|
|||||||
@@ -4,6 +4,9 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
|
|
||||||
"github.com/go-chi/chi/v5"
|
"github.com/go-chi/chi/v5"
|
||||||
|
"log/slog"
|
||||||
|
|
||||||
|
"github.com/yan1h/agent-coding-workflow/internal/transport/http/middleware"
|
||||||
)
|
)
|
||||||
|
|
||||||
// RouterDeps bundles the dependencies needed to assemble the router.
|
// RouterDeps bundles the dependencies needed to assemble the router.
|
||||||
@@ -20,6 +23,8 @@ type RouterDeps struct {
|
|||||||
// SPAHandler 为 nil 时禁用前端 fallback;非 nil 时挂到 chi NotFound,
|
// SPAHandler 为 nil 时禁用前端 fallback;非 nil 时挂到 chi NotFound,
|
||||||
// 把未匹配的请求交给 SPA handler 处理(静态文件 + index.html 回退)。
|
// 把未匹配的请求交给 SPA handler 处理(静态文件 + index.html 回退)。
|
||||||
SPAHandler http.Handler
|
SPAHandler http.Handler
|
||||||
|
// Logger 用于 Recover 和 Logger 中间件。为 nil 时跳过日志相关中间件。
|
||||||
|
Logger *slog.Logger
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewRouter builds the application's chi.Router with the standard
|
// NewRouter builds the application's chi.Router with the standard
|
||||||
@@ -29,6 +34,13 @@ type RouterDeps struct {
|
|||||||
func NewRouter(deps RouterDeps) chi.Router {
|
func NewRouter(deps RouterDeps) chi.Router {
|
||||||
r := chi.NewRouter()
|
r := chi.NewRouter()
|
||||||
|
|
||||||
|
// 所有中间件必须在注册路由之前添加(chi 的强制要求)。
|
||||||
|
r.Use(middleware.RequestID)
|
||||||
|
if deps.Logger != nil {
|
||||||
|
r.Use(middleware.Recover(deps.Logger))
|
||||||
|
r.Use(middleware.Logger(deps.Logger))
|
||||||
|
}
|
||||||
|
|
||||||
r.Get("/healthz", func(w http.ResponseWriter, req *http.Request) {
|
r.Get("/healthz", func(w http.ResponseWriter, req *http.Request) {
|
||||||
if deps.HealthCheck != nil {
|
if deps.HealthCheck != nil {
|
||||||
if err := deps.HealthCheck(req); err != nil {
|
if err := deps.HealthCheck(req); err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user