1.0.2 |
|
---|---|
0.1.0 |
|
#240 in #router
13KB
174 行
rs-regex-router
使用单个分组正则表达式(支持路径参数提取)实现请求路由。
功能
- 基于这篇文章的设计方法。
- 在通用处理器类型上实现,允许与各种Web服务器crate一起使用。
- 提取路径参数,并将其映射为键值对。
- 用于轻松声明路由的便利宏。
安装与基本用法
[dependencies]
regex_router = "1.0.2"
使用单元处理器类型的示例
use regex_router::{RouterBuilder, route};
...
let mut builder = RouterBuilder::<()>::new();
route!(builder; r"/example";; "GET" => ());
route!(builder; r"/test";; "GET" => ());
let router = builder.build().unwrap();
声明路径参数的示例
let mut builder = RouterBuilder::<()>::new();
route!(builder; r"/example/(\d+)"; "var1"; "GET" => ());
route!(builder; r"/test/(\d+)/(\d+)"; "var1", "var2"; "GET" => ());
let router = builder.build().unwrap();
对路由进行分发
match router.dispatch("GET", "/example/500") {
Some(route_match) => {
// Call handler and return response.
}
None => {
// No route match. Return 404.
}
};
可以在这里找到对hyper
的示例实现。
问题与支持
无论您是想报告在使用此crate时遇到的问题,还是寻求一般性的帮助/支持,请使用问题跟踪器,并提供尽可能多的详细信息(例如重现步骤)。
我会尽力在合理的时间内回复问题。
依赖关系
~2.2–3MB
~53K SLoC