mirror of
https://github.com/actix/actix-web.git
synced 2025-04-10 11:54:06 +00:00
Merge branch 'master' into master
This commit is contained in:
commit
da10fd6ca5
10 changed files with 39 additions and 37 deletions
|
@ -6,6 +6,10 @@
|
|||
|
||||
* Add support for serde_json::Value to be passed as argument to ResponseBuilder.body()
|
||||
|
||||
### Fixed
|
||||
|
||||
* To be compatible with non-English error responses, `ResponseError` rendered with `text/plain; charset=utf-8` header #1118
|
||||
|
||||
|
||||
## [0.2.10] - 2019-09-11
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ pub trait ResponseError: fmt::Debug + fmt::Display {
|
|||
let _ = write!(Writer(&mut buf), "{}", self);
|
||||
resp.headers_mut().insert(
|
||||
header::CONTENT_TYPE,
|
||||
header::HeaderValue::from_static("text/plain"),
|
||||
header::HeaderValue::from_static("text/plain; charset=utf-8"),
|
||||
);
|
||||
resp.set_body(Body::from(buf))
|
||||
}
|
||||
|
@ -536,7 +536,7 @@ where
|
|||
let _ = write!(Writer(&mut buf), "{}", self);
|
||||
res.headers_mut().insert(
|
||||
header::CONTENT_TYPE,
|
||||
header::HeaderValue::from_static("text/plain"),
|
||||
header::HeaderValue::from_static("text/plain; charset=utf-8"),
|
||||
);
|
||||
res.set_body(Body::from(buf))
|
||||
}
|
||||
|
|
|
@ -46,9 +46,9 @@ pub trait FromRequest: Sized {
|
|||
/// ## Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, dev, App, Error, HttpRequest, FromRequest};
|
||||
/// use actix_web::error::ErrorBadRequest;
|
||||
/// use serde_derive::Deserialize;
|
||||
/// use rand;
|
||||
///
|
||||
/// #[derive(Debug, Deserialize)]
|
||||
|
@ -119,9 +119,9 @@ where
|
|||
/// ## Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, dev, App, Result, Error, HttpRequest, FromRequest};
|
||||
/// use actix_web::error::ErrorBadRequest;
|
||||
/// use serde_derive::Deserialize;
|
||||
/// use rand;
|
||||
///
|
||||
/// #[derive(Debug, Deserialize)]
|
||||
|
|
20
src/guard.rs
20
src/guard.rs
|
@ -1,16 +1,16 @@
|
|||
//! Route match guards.
|
||||
//!
|
||||
//! Guards are one of the way how actix-web router chooses
|
||||
//! handler service. In essence it just function that accepts
|
||||
//! reference to a `RequestHead` instance and returns boolean.
|
||||
//! Guards are one of the ways how actix-web router chooses a
|
||||
//! handler service. In essence it is just a function that accepts a
|
||||
//! reference to a `RequestHead` instance and returns a boolean.
|
||||
//! It is possible to add guards to *scopes*, *resources*
|
||||
//! and *routes*. Actix provide several guards by default, like various
|
||||
//! http methods, header, etc. To become a guard, type must implement `Guard`
|
||||
//! trait. Simple functions coulds guards as well.
|
||||
//!
|
||||
//! Guard can not modify request object. But it is possible to
|
||||
//! to store extra attributes on a request by using `Extensions` container.
|
||||
//! Extensions container available via `RequestHead::extensions()` method.
|
||||
//! Guards can not modify the request object. But it is possible
|
||||
//! to store extra attributes on a request by using the `Extensions` container.
|
||||
//! Extensions containers are available via the `RequestHead::extensions()` method.
|
||||
//!
|
||||
//! ```rust
|
||||
//! use actix_web::{web, http, dev, guard, App, HttpResponse};
|
||||
|
@ -29,11 +29,11 @@
|
|||
use actix_http::http::{self, header, uri::Uri, HttpTryFrom};
|
||||
use actix_http::RequestHead;
|
||||
|
||||
/// Trait defines resource guards. Guards are used for routes selection.
|
||||
/// Trait defines resource guards. Guards are used for route selection.
|
||||
///
|
||||
/// Guard can not modify request object. But it is possible to
|
||||
/// to store extra attributes on request by using `Extensions` container,
|
||||
/// Extensions container available via `RequestHead::extensions()` method.
|
||||
/// Guards can not modify the request object. But it is possible
|
||||
/// to store extra attributes on a request by using the `Extensions` container.
|
||||
/// Extensions containers are available via the `RequestHead::extensions()` method.
|
||||
pub trait Guard {
|
||||
/// Check if request matches predicate
|
||||
fn check(&self, request: &RequestHead) -> bool;
|
||||
|
|
|
@ -271,8 +271,8 @@ impl Drop for HttpRequest {
|
|||
/// ## Example
|
||||
///
|
||||
/// ```rust
|
||||
/// # #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App, HttpRequest};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// /// extract `Thing` from request
|
||||
/// fn index(req: HttpRequest) -> String {
|
||||
|
|
|
@ -178,8 +178,8 @@ impl Route {
|
|||
/// Set handler function, use request extractors for parameters.
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, http, App};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct Info {
|
||||
|
@ -239,9 +239,9 @@ impl Route {
|
|||
///
|
||||
/// ```rust
|
||||
/// # use futures::future::ok;
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App, Error};
|
||||
/// use futures::Future;
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct Info {
|
||||
|
|
|
@ -35,9 +35,8 @@ use crate::responder::Responder;
|
|||
///
|
||||
/// ### Example
|
||||
/// ```rust
|
||||
/// # extern crate actix_web;
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App};
|
||||
/// use actix_web::web;
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct FormData {
|
||||
|
@ -61,9 +60,9 @@ use crate::responder::Responder;
|
|||
///
|
||||
/// ### Example
|
||||
/// ```rust
|
||||
/// # #[macro_use] extern crate serde_derive;
|
||||
/// # use actix_web::*;
|
||||
/// #
|
||||
/// use actix_web::*;
|
||||
/// use serde_derive::Serialize;
|
||||
///
|
||||
/// #[derive(Serialize)]
|
||||
/// struct SomeForm {
|
||||
/// name: String,
|
||||
|
@ -167,8 +166,8 @@ impl<T: Serialize> Responder for Form<T> {
|
|||
/// Form extractor configuration
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App, FromRequest, Result};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct FormData {
|
||||
|
|
|
@ -33,8 +33,8 @@ use crate::responder::Responder;
|
|||
/// ## Example
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct Info {
|
||||
|
@ -60,9 +60,9 @@ use crate::responder::Responder;
|
|||
/// trait from *serde*.
|
||||
///
|
||||
/// ```rust
|
||||
/// # #[macro_use] extern crate serde_derive;
|
||||
/// # use actix_web::*;
|
||||
/// #
|
||||
/// use actix_web::*;
|
||||
/// use serde_derive::Serialize;
|
||||
///
|
||||
/// #[derive(Serialize)]
|
||||
/// struct MyObj {
|
||||
/// name: String,
|
||||
|
@ -144,8 +144,8 @@ impl<T: Serialize> Responder for Json<T> {
|
|||
/// ## Example
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct Info {
|
||||
|
@ -203,8 +203,8 @@ where
|
|||
/// Json extractor configuration
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{error, web, App, FromRequest, HttpResponse};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct Info {
|
||||
|
|
|
@ -39,8 +39,8 @@ use crate::FromRequest;
|
|||
/// implements `Deserialize` trait from *serde*.
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App, Error};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct Info {
|
||||
|
@ -134,8 +134,8 @@ impl<T: fmt::Display> fmt::Display for Path<T> {
|
|||
/// implements `Deserialize` trait from *serde*.
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App, Error};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct Info {
|
||||
|
@ -190,10 +190,9 @@ where
|
|||
/// Path extractor configuration
|
||||
///
|
||||
/// ```rust
|
||||
/// # #[macro_use]
|
||||
/// # extern crate serde_derive;
|
||||
/// use actix_web::web::PathConfig;
|
||||
/// use actix_web::{error, web, App, FromRequest, HttpResponse};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize, Debug)]
|
||||
/// enum Folder {
|
||||
|
|
|
@ -21,8 +21,8 @@ use crate::request::HttpRequest;
|
|||
/// ## Example
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Debug, Deserialize)]
|
||||
/// pub enum ResponseType {
|
||||
|
@ -99,8 +99,8 @@ impl<T: fmt::Display> fmt::Display for Query<T> {
|
|||
/// ## Example
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{web, App};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Debug, Deserialize)]
|
||||
/// pub enum ResponseType {
|
||||
|
@ -169,8 +169,8 @@ where
|
|||
/// ## Example
|
||||
///
|
||||
/// ```rust
|
||||
/// #[macro_use] extern crate serde_derive;
|
||||
/// use actix_web::{error, web, App, FromRequest, HttpResponse};
|
||||
/// use serde_derive::Deserialize;
|
||||
///
|
||||
/// #[derive(Deserialize)]
|
||||
/// struct Info {
|
||||
|
|
Loading…
Reference in a new issue