[][src]Function routerify_query::query_parser

pub fn query_parser<B, E>() -> Middleware<B, E> where
    B: HttpBody + Send + Sync + Unpin + 'static,
    E: Error + Send + Sync + Unpin + 'static, 

Parses the request query string and populates in the req object.

Examples

use hyper::{Body, Request, Response, Server};
use routerify::{Router, RouterService};
// Import the query_parser function and the RequestQueryExt trait.
use routerify_query::{query_parser, RequestQueryExt};
use std::{convert::Infallible, net::SocketAddr};

// A handler for "/" page. Visit: "/?username=Alice&bookname=HarryPotter" to see query values.
async fn home_handler(req: Request<Body>) -> Result<Response<Body>, Infallible> {
    // Access the query values.
    let user_name = req.query("username").unwrap();
    let book_name = req.query("bookname").unwrap();

    Ok(Response::new(Body::from(format!(
        "User: {}, Book: {}",
        user_name, book_name
    ))))
}


// Create a router.
Router::builder()
  // Attach the query_parser middleware.
  .middleware(query_parser())
  .get("/", home_handler)
  .build()
  .unwrap()
}