Crates.io | iron-middlefiddle |
lib.rs | iron-middlefiddle |
version | 0.1.1 |
source | src |
created_at | 2017-06-30 12:26:15.815366 |
updated_at | 2017-06-30 12:39:36.656391 |
description | `iron_middlefiddle` provides a macro to make route-specific middleware in Iron an easy feat |
homepage | https://github.com/elliotekj/iron-middlefiddle |
repository | https://github.com/elliotekj/iron-middlefiddle |
max_upload_size | |
id | 21323 |
size | 13,724 |
iron_middlefiddle
- Route specific middleware made easyThere 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.
If you're using Cargo, just add iron_middlefiddle
to your Cargo.toml:
[dependencies]
iron-middlefiddle = "0.1.1"
#[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();
}
The documentation for iron_middlefiddle
is available on
docs.rs.
iron_middlefiddle
is released under the MIT
LICENSE
.
If you require a different license to be able to use this crate, please get in touch.
This crate was written by Elliot Jackson.