Struct actix_web_validator::QsQuery [−][src]
pub struct QsQuery<T>(pub T);
Expand description
Extract and validate typed information from the request’s query (serde_qs based).
For query decoding uses serde_qs crate
QsQueryConfig allows to configure extraction process.
Example
use actix_web::{web, App}; use serde::Deserialize; use actix_web_validator::QsQuery; use validator::Validate; #[derive(Debug, Deserialize)] pub enum ResponseType { Token, Code } #[derive(Deserialize, Validate)] pub struct AuthRequest { #[validate(range(min = 1000, max = 9999))] id: u64, response_type: ResponseType, } // Use `Query` extractor for query information (and destructure it within the signature). // This handler gets called only if the request's query string contains a `id` and // `response_type` fields. // The correct request for this handler would be `/index.html?id=1234&response_type=Code"`. async fn index(info: QsQuery<AuthRequest>) -> String { format!("Authorization request for client with id={} and type={:?}!", info.id, info.response_type) } fn main() { let app = App::new().service( web::resource("/index.html").route(web::get().to(index))); // <- use `Query` extractor }
Implementations
Deconstruct to an inner value.
Trait Implementations
Extract typed information from the request’s query.
Example
use actix_web::{web, App}; use serde::Deserialize; use actix_web_validator::QsQuery; use validator::Validate; #[derive(Debug, Deserialize)] pub enum ResponseType { Token, Code } #[derive(Deserialize, Validate)] pub struct AuthRequest { #[validate(range(min = 1000, max = 9999))] id: u64, response_type: ResponseType, } // Use `Query` extractor for query information (and destructure it within the signature). // This handler gets called only if the request's query string contains a `id` and // `response_type` fields. // The correct request for this handler would be `/index.html?id=19&response_type=Code"`. async fn index(QsQuery(info): QsQuery<AuthRequest>) -> String { format!("Authorization request for client with id={} and type={:?}!", info.id, info.response_type) } fn main() { let app = App::new().service( web::resource("/index.html").route(web::get().to(index))); // <- use `Query` extractor }
Builds Query struct from request and provides validation mechanism
type Error = Error
type Error = ErrorThe associated error which can be returned.
type Config = QsQueryConfig
type Config = QsQueryConfigConfiguration for this extractor
Convert request to a Self Read more
This method returns an ordering between self and other values if one exists. Read more
This method tests less than (for self and other) and is used by the < operator. Read more
This method tests less than or equal to (for self and other) and is used by the <=
operator. Read more
This method tests greater than (for self and other) and is used by the > operator. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for QsQuery<T> where
T: RefUnwindSafe, impl<T> UnwindSafe for QsQuery<T> where
T: UnwindSafe, Blanket Implementations
Mutably borrows from an owned value. Read more
Compare self to key and return true if they are equal.
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
Instruments this type with the provided Span, returning an
Instrumented wrapper. Read more
type Output = T
type Output = TShould always be Self
pub fn vzip(self) -> V