[]Struct paperclip::actix::web::JsonConfig

pub struct JsonConfig { /* fields omitted */ }

Json extractor configuration

use actix_web::{error, web, App, FromRequest, HttpResponse};
use serde_derive::Deserialize;

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

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

fn main() {
    let app = App::new().service(
        web::resource("/index.html")
            .app_data(
                // change json extractor configuration
                web::Json::<Info>::configure(|cfg| {
                    cfg.limit(4096)
                       .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()
                       })
            }))
            .route(web::post().to(index))
    );
}

Methods

impl JsonConfig

pub fn limit(self, limit: usize) -> JsonConfig

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

pub fn error_handler<F>(self, f: F) -> JsonConfig where
    F: Fn(JsonPayloadError, &HttpRequest) -> Error + Send + Sync + 'static, 

Set custom error handler

pub fn content_type<F>(self, predicate: F) -> JsonConfig where
    F: Fn(Mime) -> bool + Send + Sync + 'static, 

Set predicate for allowed content types

Trait Implementations

impl Clone for JsonConfig

impl Default for JsonConfig

Auto Trait Implementations

impl !RefUnwindSafe for JsonConfig

impl Send for JsonConfig

impl Sync for JsonConfig

impl Unpin for JsonConfig

impl !UnwindSafe for JsonConfig

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 

type Err = <U as TryFrom<T>>::Err

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,