Crate iron_middlefiddle [−] [src]
There are cases where you may only want specific routes within
a Router
to use some piece of
middleware (e.g. routes that require the user to be logged in). Adding route-specific
middleware in Iron is a repetitive and messy business which is where iron_middlefiddle
comes
in. It provides a convenience macro for adding one or more
BeforeMiddleware
or
AfterMiddleware
s to
multiple routes at once.
Example usage
#[macro_use] extern crate iron_middlefiddle; extern crate iron; extern crate mount; extern crate router; use iron_middlefiddle::Middleware; use mount::Mount; use router::Router; mod controllers; mod middleware; fn main() { let mut frontend_router = Router::new(); // Add some `frontend_router` routes and the middleware they should use: middlefiddle! { router => frontend_router, routes => { lorem: get "/lorem" => controllers::lorem::index, ipsum: get "/ipsum" => controllers::ipsum::index, dolor: get "/dolor" => controllers::dolor::index, }, middleware => { Middleware::BeforeMiddleware => middleware::auth::TokenValidity, }, }; // Add some more `frontend_router` routes that aren't going to need the middleware: frontend_router.get("/amet", controllers::amet::index, "amet"); // The usual… let mut mount = Mount::new(); mount.mount("/", frontend_router) Iron::new(mount).http("127.0.0.1:8888").unwrap(); }
Macros
middlefiddle |
The main |
Enums
Middleware |
Specifies the type of middleware you are passing to the routes. |