#router #routing #rusty #web #http #iron-framework #url-parameters

rusty_pipe

Iron 框架的一个更优秀的路由器

6 个版本

使用旧的 Rust 2015

0.1.5 2018 年 3 月 8 日
0.1.4 2018 年 3 月 7 日

#1279HTTP 服务器

MIT 许可证

50KB
1K SLoC

Rusty Pipe

Iron Web 框架的路由处理程序。

Rusty Pipe 是 Iron 的一个快速、方便且灵活的路由中间件。它允许使用复杂的 glob 模式和命名 URL 参数,并允许处理程序为任何 Handler,包括所有 Chain。

最初来源于 Iron Router,Rusty Pipe 增加了额外的元数据,可以在每个请求中访问,以便根据每个路由的上下文实现更高级的中间件。

示例

extern crate iron;
extern crate router;

use iron::prelude::*;
use iron::status;
use rusty_pipe::Router;

fn main() {
    let mut router = Router::new();           // Alternative syntax:
    router.get("/", handler, "index");        // let router = router!(index: get "/" => handler,
    router.get("/:query", handler, "query");  //                      query: get "/:query" => handler);

    Iron::new(router).http("localhost:3000").unwrap();

    fn handler(req: &mut Request) -> IronResult<Response> {
        let ref query = req.extensions.get::<Router>().unwrap().find("query").unwrap_or("/");
        Ok(Response::with((status::Ok, *query)))
    }
}

安装

如果您使用 cargo,只需将 router 添加到您的 Cargo.toml

[dependencies]

rusty_pipe = "*"

否则,执行 cargo build,rlib 将位于您的 target 目录中。

示例

依赖项

~4.5MB
~113K SLoC