[−][src]Struct actix_web_validator::JsonConfig
Json extractor configuration
use actix_web::{error, web, App, FromRequest, HttpResponse}; use serde_derive::Deserialize; use actix_web_validator::{Json, JsonConfig}; use validator::Validate; #[derive(Deserialize, Validate)] struct Info { #[validate(length(min = 3))] username: String, } /// deserialize `Info` from request's body, max payload size is 4kb async fn index(info: Json<Info>) -> String { format!("Welcome {}!", info.username) } fn main() { let app = App::new().service( web::resource("/index.html") .app_data( // change json extractor configuration 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)) ); }
Implementations
impl JsonConfig
[src]
pub fn limit(self, limit: usize) -> Self
[src]
Change max size of payload. By default max size is 32Kb
pub fn error_handler<F>(self, f: F) -> Self where
F: Fn(Error, &HttpRequest) -> Error + Send + Sync + 'static,
[src]
F: Fn(Error, &HttpRequest) -> Error + Send + Sync + 'static,
Set custom error handler
pub fn content_type<F>(self, predicate: F) -> Self where
F: Fn(Mime) -> bool + Send + Sync + 'static,
[src]
F: Fn(Mime) -> bool + Send + Sync + 'static,
Set predicate for allowed content types
Trait Implementations
impl Clone for JsonConfig
[src]
pub fn clone(&self) -> JsonConfig
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Default for JsonConfig
[src]
Auto Trait Implementations
impl !RefUnwindSafe for JsonConfig
[src]
impl Send for JsonConfig
[src]
impl Sync for JsonConfig
[src]
impl Unpin for JsonConfig
[src]
impl !UnwindSafe for JsonConfig
[src]
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T> Instrument for T
[src]
pub fn instrument(self, span: Span) -> Instrumented<Self>
[src]
pub fn in_current_span(self) -> Instrumented<Self>
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> Same<T> for T
type Output = T
Should always be Self
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,