3 个版本
0.5.0-rc | 2020 年 3 月 20 日 |
---|---|
0.5.0-beta | 2020 年 3 月 4 日 |
0.5.0-alpha | 2020 年 3 月 3 日 |
#1364 在 HTTP 服务器
105KB
2K SLoC
Roa-router
roa 的路由模块。此模块提供了一个端点 RouteEndpoint
和一个上下文扩展 RouterParam
。
示例
use roa_router::{Router, RouterParam};
use roa_core::App;
use roa_core::http::StatusCode;
use roa_tcp::Listener;
use async_std::task::spawn;
#[tokio::test]
async fn gate() -> Result<(), Box<dyn std::error::Error>> {
let mut router = Router::<()>::new();
router
.gate_fn(|_ctx, next| next)
.get("/", |_ctx| async move {
Ok(())
});
let (addr, server) = App::new(()).gate(router.routes("/route")?).run()?;
spawn(server);
let resp = reqwest::get(&format!("http://{}/route", addr)).await?;
assert_eq!(StatusCode::OK, resp.status());
let resp = reqwest::get(&format!("http://{}/endpoint", addr)).await?;
assert_eq!(StatusCode::NOT_FOUND, resp.status());
Ok(())
}
依赖项
~13MB
~216K SLoC