Expand description
This module provides a middleware query_parser
and a context extension Query
.
Example
use roa::query::query_parser;
use roa::{App, Context};
use roa::http::StatusCode;
use roa::preload::*;
use tokio::task::spawn;
async fn must(ctx: &mut Context) -> roa::Result {
assert_eq!("Hexilee", &*ctx.must_query("name")?);
Ok(())
}
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
let app = App::new()
.gate(query_parser)
.end(must);
let (addr, server) = app.run()?;
spawn(server);
let resp = reqwest::get(&format!("http://{}?name=Hexilee", addr)).await?;
assert_eq!(StatusCode::OK, resp.status());
Ok(())
}
Traits
A context extension.
This extension must be used in downstream of middleware query_parser
,
otherwise you cannot get expected query variable.
Functions
A middleware to parse query.