Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
src
 
 
 
 
 
 
 
 
 
 
 
 

iron_middlefiddle - Route specific middleware made easy

Crates.io Docs License

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 AfterMiddlewares to multiple routes at once.

Installation

If you're using Cargo, just add iron_middlefiddle to your Cargo.toml:

[dependencies]
iron-middlefiddle = "0.1.1"

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();
}

Documentation

The documentation for iron_middlefiddle is available on docs.rs.

License

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.

About

This crate was written by Elliot Jackson.

About

Route specific middleware made easy in Iron

Resources

License

Releases

No releases published

Packages

No packages published

Languages