pub struct Form<T>(pub T);Expand description
URL encoded payload extractor and responder.
Form has two uses: URL encoded responses, and extracting typed data from URL request payloads.
Extractor
To extract typed data from a request body, the inner type T must implement the
DeserializeOwned trait.
Use FormConfig to configure extraction options.
use actix_web::{post, web};
use serde::Deserialize;
#[derive(Deserialize)]
struct Info {
name: String,
}
// This handler is only called if:
// - request headers declare the content type as `application/x-www-form-urlencoded`
// - request payload is deserialized into a `Info` struct from the URL encoded format
#[post("/")]
async fn index(form: web::Form<Info>) -> String {
format!("Welcome {}!", form.name)
}Responder
The Form type also allows you to create URL encoded responses:
simply return a value of type Formserde::Serialize.
Responses use
use actix_web::{get, web};
use serde::Serialize;
#[derive(Serialize)]
struct SomeForm {
name: String,
age: u8
}
// Response will have:
// - status: 200 OK
// - header: `Content-Type: application/x-www-form-urlencoded`
// - body: `name=actix&age=123`
#[get("/")]
async fn index() -> web::Form<SomeForm> {
web::Form(SomeForm {
name: "actix".into(),
age: 123
})
}Panics
URL encoded forms consist of unordered key=value pairs, therefore they cannot be decoded into
any type which depends upon data ordering (eg. tuples). Trying to do so will result in a panic.
Tuple Fields
0: TImplementations
Unwrap into inner T value.
Trait Implementations
See here for example of usage as an extractor.
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
See here for example of usage as a handler return type.
type Body = EitherBody<String>
fn respond_to(self, _: &HttpRequest) -> HttpResponse<Self::Body>ⓘNotable traits for HttpResponse<BoxBody>impl Future for HttpResponse<BoxBody> type Output = Result<Response<BoxBody>, Error>;
fn respond_to(self, _: &HttpRequest) -> HttpResponse<Self::Body>ⓘNotable traits for HttpResponse<BoxBody>impl Future for HttpResponse<BoxBody> type Output = Result<Response<BoxBody>, Error>;
impl Future for HttpResponse<BoxBody> type Output = Result<Response<BoxBody>, Error>;Convert self to HttpResponse.
Wraps responder to allow alteration of its response. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for Form<T> where
T: RefUnwindSafe,
impl<T> UnwindSafe for Form<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.
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
