Struct actix_web::dev::JsonConfig

source ·
pub struct JsonConfig<S> { /* private fields */ }
Expand description

Json extractor configuration

extern crate mime;
#[macro_use] extern crate serde_derive;
use actix_web::{error, http, App, HttpResponse, Json, Result};

#[derive(Deserialize)]
struct Info {
    username: String,
}

/// deserialize `Info` from request's body, max payload size is 4kb
fn index(info: Json<Info>) -> Result<String> {
    Ok(format!("Welcome {}!", info.username))
}

fn main() {
    let app = App::new().resource("/index.html", |r| {
        r.method(http::Method::POST)
              .with_config(index, |cfg| {
                  cfg.0.limit(4096)   // <- change json extractor configuration
                     .content_type(|mime| {  // <- accept text/plain content type
                         mime.type_() == mime::TEXT && mime.subtype() == mime::PLAIN
                     })
                     .error_handler(|err, req| {  // <- create custom error response
                         error::InternalError::from_response(
                             err, HttpResponse::Conflict().finish()).into()
                         });
              })
    });
}

Implementations

Change max size of payload. By default max size is 256Kb

Set custom error handler

Set predicate for allowed content types

Trait Implementations

Returns the “default value” for a type. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Should always be Self
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.