Struct actix_web::web::Query [−][src]
pub struct Query<T>(pub T);Expand description
Extract typed information from the request’s query.
Note: A query string consists of unordered key=value pairs, therefore it cannot
be decoded into any type which depends upon data ordering e.g. tuples or tuple-structs.
Attempts to do so will fail at runtime.
QueryConfig allows to configure extraction process.
Example
use actix_web::{web, App};
use serde_derive::Deserialize;
#[derive(Debug, Deserialize)]
pub enum ResponseType {
Token,
Code
}
#[derive(Deserialize)]
pub struct AuthRequest {
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 `id` and `response_type` fields.
// The correct request for this handler would be `/index.html?id=64&response_type=Code"`.
async fn index(web::Query(info): web::Query<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
}Tuple Fields
0: TImplementations
Deconstruct to a inner value
pub fn from_query(query_str: &str) -> Result<Self, QueryPayloadError> where
T: DeserializeOwned,
pub fn from_query(query_str: &str) -> Result<Self, QueryPayloadError> where
T: DeserializeOwned,
Get query parameters from the path
Trait Implementations
Extract typed information from the request’s query.
Example
use actix_web::{web, App};
use serde_derive::Deserialize;
#[derive(Debug, Deserialize)]
pub enum ResponseType {
Token,
Code
}
#[derive(Deserialize)]
pub struct AuthRequest {
id: u64,
response_type: ResponseType,
}
// Use `Query` extractor for query information.
// This handler get called only if request's query contains `id` and `response_type` fields.
// The correct request for this handler would be `/index.html?id=64&response_type=Code"`
async fn index(info: web::Query<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
}type Config = QueryConfig
type Config = QueryConfig
Configuration for this extractor
Convert request to a Self
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 Query<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Query<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
pub fn vzip(self) -> V
Attaches the provided Subscriber to this type, returning a
WithDispatch wrapper. Read more
Attaches the current default Subscriber to this type, returning a
WithDispatch wrapper. Read more
