feat: organize route & middleware by sequence#87
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (8)
📝 WalkthroughWalkthroughRemoves the ChangesRouter Refactor: Sequence-based Middleware and Layer Removal
Sequence DiagramsequenceDiagram
participant Client
participant HttpServer
participant try_handle_route
participant Router
participant MiddlewareChain
participant PyHandler
Client->>HttpServer: HTTP request
HttpServer->>HttpServer: create_request_context (clones routers vec)
loop for each router in ctx.routers
HttpServer->>try_handle_route: iterate routers
try_handle_route->>Router: find(method, path)
Router-->>try_handle_route: Match or None
end
try_handle_route->>HttpServer: process_matched_route(Arc<Router>)
HttpServer->>MiddlewareChain: build_middleware_chain(route_sequence)
MiddlewareChain->>MiddlewareChain: skip middleware where sequence > route_sequence
MiddlewareChain->>PyHandler: call handler via filtered chain
PyHandler-->>Client: HTTP response
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes Possibly related PRs
Suggested reviewers
Poem
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Summary by CodeRabbit
Release Notes
Breaking Changes
Router.scope()method; use separate router instances for middleware isolation.Changed Behavior
New Features
Documentation