#middleware #iron #router #authentication #middlefiddle

iron-middlefiddle

iron_middlefiddle 提供了一个宏,使得在Iron中创建针对特定路由的中间件变得容易

2个版本

使用旧的Rust 2015

0.1.1 2017年6月30日
0.1.0 2017年6月30日

#40 in #iron

MIT 许可证

13KB
91

iron_middlefiddle - 简化特定路由的中间件

Docs License

在某些情况下,你可能只想在Router中的特定路由使用一些中间件(例如,需要用户登录的路由)。在Iron中添加特定路由的中间件是一个重复且混乱的过程,这就是iron_middlefiddle出现的原因。它提供了一种便利的宏,可以一次添加一个或多个BeforeMiddlewareAfterMiddleware到多个路由。

安装

如果你使用Cargo,只需将iron_middlefiddle添加到你的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();
}

文档

iron_middlefiddle的文档可在docs.rs上找到。

许可证

iron_middlefiddle采用MIT LICENSE许可证。

如果你需要不同的许可证才能使用这个包,请与我联系。

关于

此包由Elliot Jackson编写。

依赖关系

~4.5MB
~113K SLoC