pub trait ControllerRouter {
// Required method
fn router_rules(&self) -> Vec<RouteRule>;
// Provided methods
fn router_prefix(&self) -> &str { ... }
fn router_middleware(&self) -> Vec<String> { ... }
}Expand description
控制器路由契约
由 #[controller] 属性宏自动实现,声明控制器内的所有路由。
§用法(属性宏实现后)
ⓘ
use sz_rust_router_facade::routing::ControllerRouter;
#[controller(prefix = "/users")]
struct UserController;
impl UserController {
#[get("/{id}")]
fn show(&self, id: i64) -> String { ... }
}
// ControllerRouter 由 #[controller] 自动实现
let routes = UserController.router_rules();Required Methods§
Sourcefn router_rules(&self) -> Vec<RouteRule>
fn router_rules(&self) -> Vec<RouteRule>
返回控制器内所有路由规则(已包含 prefix)
Provided Methods§
Sourcefn router_prefix(&self) -> &str
fn router_prefix(&self) -> &str
控制器的路径前缀(如 /users)
Sourcefn router_middleware(&self) -> Vec<String>
fn router_middleware(&self) -> Vec<String>
控制器级中间件(应用到控制器内所有路由)
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".