[−][src]Module roa::router
The router module of roa.
This module provides a middleware RouteEndpoint
and a context extension RouterParam
.
Example
use roa::router::{Router, RouterParam}; use roa::core::{App, StatusCode}; 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| async move { next().await }) .get("/", |ctx| async move { Ok(()) }); let (addr, server) = App::new(()).gate(router.routes("/route")?).run_local()?; 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(()) }
Structs
RouteEndpoint | A endpoint to handle request by uri path and http method. |
Router | A builder of |
Traits
RouterParam | A context extension.
This extension must be used in downstream of middleware |