pub struct Form<T>(pub T);
Available on crate feature
form
only.Expand description
URL encoded extractor and response.
As extractor
If used as an extractor Form
will deserialize the query parameters for GET
and HEAD
requests and application/x-www-form-urlencoded
encoded request bodies for other methods. It
supports any type that implements serde::Deserialize
.
Since parsing form data might require consuming the request body, the Form
extractor must be
last if there are multiple extractors in a handler. See “the order of
extractors”
use axum::Form;
use serde::Deserialize;
#[derive(Deserialize)]
struct SignUp {
username: String,
password: String,
}
async fn accept_form(Form(sign_up): Form<SignUp>) {
// ...
}
Note that Content-Type: multipart/form-data
requests are not supported. Use Multipart
instead.
As response
use axum::Form;
use serde::Serialize;
#[derive(Serialize)]
struct Payload {
value: String,
}
async fn handler() -> Form<Payload> {
Form(Payload { value: "foo".to_owned() })
}
Tuple Fields§
§0: T
Trait Implementations§
source§impl<T, S, B> FromRequest<S, B, ViaRequest> for Form<T>where
T: DeserializeOwned,
B: HttpBody + Send + 'static,
B::Data: Send,
B::Error: Into<BoxError>,
S: Send + Sync,
impl<T, S, B> FromRequest<S, B, ViaRequest> for Form<T>where T: DeserializeOwned, B: HttpBody + Send + 'static, B::Data: Send, B::Error: Into<BoxError>, S: Send + Sync,
§type Rejection = FormRejection
type Rejection = FormRejection
If the extractor fails it’ll use this “rejection” type. A rejection is
a kind of error that can be converted into a response.
source§impl<T> IntoResponse for Form<T>where
T: Serialize,
impl<T> IntoResponse for Form<T>where T: Serialize,
source§fn into_response(self) -> Response
fn into_response(self) -> Response
Create a response.