[][src]Trait routerify_query::RequestQueryExt

pub trait RequestQueryExt {
    fn queries(&self) -> &HashMap<String, String>;
fn query<P: Into<String>>(&self, query_name: P) -> Option<&String>; }

An extension trait which extends the hyper::Request type with some helpful methods to access query values from req object.

Required methods

fn queries(&self) -> &HashMap<String, String>

It returns the parsed queries in a HashMap.

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 queries = req.queries();

    let user_name = queries.get("username").unwrap();
    let book_name = queries.get("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()
}

fn query<P: Into<String>>(&self, query_name: P) -> Option<&String>

It returns the query value by a query name.

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()
}
Loading content...

Implementations on Foreign Types

impl RequestQueryExt for Request<Body>[src]

Loading content...

Implementors

Loading content...