14个版本
使用旧的Rust 2015
0.4.0 | 2017年11月7日 |
---|---|
0.3.0 | 2017年1月11日 |
0.2.1 | 2016年7月29日 |
0.1.0 | 2016年3月25日 |
0.0.3 | 2014年12月17日 |
#700 in HTTP服务器
2,356 monthly downloads
用于 35 个crates (29 直接)
9KB
87 行
mount
为Iron Web框架挂载中间件。
示例
fn send_hello(req: &mut Request) -> IronResult<Response> {
println!("Running send_hello handler, URL path: {:?}", req.url.path());
Ok(Response::with((status::Ok, "Hello!")))
}
fn intercept(req: &mut Request) -> IronResult<Response> {
println!("Running intercept handler, URL path: {:?}", req.url.path());
Ok(Response::with((status::Ok, "Blocked!")))
}
fn main() {
let mut mount = Mount::new();
mount.mount("/blocked/", intercept).mount("/", send_hello);
Iron::new(mount).http("localhost:3000").unwrap();
}
运行上面的代码,以下HTTP请求将以下行写入服务器进程的stdout
$ curl https://127.0.0.1:3000/
Running send_hello handler, URL path: [""]
$ curl https://127.0.0.1:3000/blocked/
Running intercept handler, URL path: [""]
$ curl https://127.0.0.1:3000/foo
Running send_hello handler, URL path: ["foo"]
$ curl https://127.0.0.1:3000/blocked/foo
Running intercept handler, URL path: ["foo"]
概述
mount是Iron的核心套件的一部分。
- 在子路径上挂载处理器,隐藏旧路径。
安装
如果您使用Cargo
来管理依赖项,只需将mount添加到toml中
[dependencies.mount]
git = "https://github.com/iron/mount.git"
否则,cargo build
,rlib将在您的target
目录中。
文档
除了在线文档外,您还可以使用cargo doc
构建本地副本。
示例
获取帮助
我们中的一员(@reem、@zzmp、@theptrk、@mcreinhard)通常在mozilla irc上的#iron
上。过来打个招呼,问您可能有的任何问题。我们通常也在#rust
和#rust-webdev
上。
依赖项
~4.5MB
~114K SLoC