mirror of
https://github.com/actix/actix-web.git
synced 2024-11-26 11:31:09 +00:00
update user guide content compression section
This commit is contained in:
parent
7295846426
commit
83168731fc
5 changed files with 42 additions and 5 deletions
|
@ -79,7 +79,7 @@ after_success:
|
||||||
if [[ "$TRAVIS_OS_NAME" == "linux" && "$TRAVIS_PULL_REQUEST" = "false" && "$TRAVIS_BRANCH" == "master" && "$TRAVIS_RUST_VERSION" == "beta" ]]; then
|
if [[ "$TRAVIS_OS_NAME" == "linux" && "$TRAVIS_PULL_REQUEST" = "false" && "$TRAVIS_BRANCH" == "master" && "$TRAVIS_RUST_VERSION" == "beta" ]]; then
|
||||||
cargo doc --features "alpn, tls, session" --no-deps &&
|
cargo doc --features "alpn, tls, session" --no-deps &&
|
||||||
echo "<meta http-equiv=refresh content=0;url=os_balloon/index.html>" > target/doc/index.html &&
|
echo "<meta http-equiv=refresh content=0;url=os_balloon/index.html>" > target/doc/index.html &&
|
||||||
curl -sL https://github.com/rust-lang-nursery/mdBook/releases/download/v0.1.3/mdbook-v0.1.3-x86_64-unknown-linux-gnu.tar.gz | tar xvz -C $HOME/.cargo/bin &&
|
curl -sL https://github.com/rust-lang-nursery/mdBook/releases/download/v0.1.2/mdbook-v0.1.2-x86_64-unknown-linux-gnu.tar.gz | tar xvz -C $HOME/.cargo/bin &&
|
||||||
cd guide && mdbook build -d ../target/doc/guide && cd .. &&
|
cd guide && mdbook build -d ../target/doc/guide && cd .. &&
|
||||||
git clone https://github.com/davisp/ghp-import.git &&
|
git clone https://github.com/davisp/ghp-import.git &&
|
||||||
./ghp-import/ghp_import.py -n -p -f -m "Documentation upload" -r https://"$GH_TOKEN"@github.com/"$TRAVIS_REPO_SLUG.git" target/doc &&
|
./ghp-import/ghp_import.py -n -p -f -m "Documentation upload" -r https://"$GH_TOKEN"@github.com/"$TRAVIS_REPO_SLUG.git" target/doc &&
|
||||||
|
|
|
@ -1,10 +1,12 @@
|
||||||
# Changes
|
# Changes
|
||||||
|
|
||||||
|
|
||||||
## 0.5.1 (2018-xx-xx)
|
## 0.5.1 (2018-04-xx)
|
||||||
|
|
||||||
* Client connector provides stats, `ClientConnector::stats()`
|
* Client connector provides stats, `ClientConnector::stats()`
|
||||||
|
|
||||||
|
* Fix end-of-stream handling in parse_payload #173
|
||||||
|
|
||||||
|
|
||||||
## 0.5.0 (2018-04-10)
|
## 0.5.0 (2018-04-10)
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
name = "actix-web"
|
name = "actix-web"
|
||||||
version = "0.5.1"
|
version = "0.5.1"
|
||||||
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
authors = ["Nikolay Kim <fafhrd91@gmail.com>"]
|
||||||
description = "Actix web is a simple, pragmatic, extremely fast, web framework for Rust."
|
description = "Actix web is a simple, pragmatic and extremely fast web framework for Rust."
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
keywords = ["http", "web", "framework", "async", "futures"]
|
keywords = ["http", "web", "framework", "async", "futures"]
|
||||||
homepage = "https://github.com/actix/actix-web"
|
homepage = "https://github.com/actix/actix-web"
|
||||||
|
|
|
@ -37,7 +37,8 @@ Actix automatically *compresses*/*decompresses* payloads. The following codecs a
|
||||||
* Identity
|
* Identity
|
||||||
|
|
||||||
If request headers contain a `Content-Encoding` header, the request payload is decompressed
|
If request headers contain a `Content-Encoding` header, the request payload is decompressed
|
||||||
according to the header value. Multiple codecs are not supported, i.e: `Content-Encoding: br, gzip`.
|
according to the header value. Multiple codecs are not supported,
|
||||||
|
i.e: `Content-Encoding: br, gzip`.
|
||||||
|
|
||||||
Response payload is compressed based on the *content_encoding* parameter.
|
Response payload is compressed based on the *content_encoding* parameter.
|
||||||
By default, `ContentEncoding::Auto` is used. If `ContentEncoding::Auto` is selected,
|
By default, `ContentEncoding::Auto` is used. If `ContentEncoding::Auto` is selected,
|
||||||
|
@ -60,6 +61,40 @@ fn index(req: HttpRequest) -> HttpResponse {
|
||||||
# fn main() {}
|
# fn main() {}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
In this case we explicitly disable content compression
|
||||||
|
by setting content encoding to a `Identity` value:
|
||||||
|
|
||||||
|
```rust
|
||||||
|
# extern crate actix_web;
|
||||||
|
use actix_web::{HttpRequest, HttpResponse, http::ContentEncoding};
|
||||||
|
|
||||||
|
fn index(req: HttpRequest) -> HttpResponse {
|
||||||
|
HttpResponse::Ok()
|
||||||
|
.content_encoding(ContentEncoding::Identity) // <- disable compression
|
||||||
|
.body("data")
|
||||||
|
}
|
||||||
|
# fn main() {}
|
||||||
|
```
|
||||||
|
|
||||||
|
Also it is possible to set default content encoding on application level, by
|
||||||
|
default `ContentEncoding::Auto` is used, which implies automatic content compression
|
||||||
|
negotiation.
|
||||||
|
|
||||||
|
```rust
|
||||||
|
# extern crate actix_web;
|
||||||
|
use actix_web::{App, HttpRequest, HttpResponse, http::ContentEncoding};
|
||||||
|
|
||||||
|
fn index(req: HttpRequest) -> HttpResponse {
|
||||||
|
HttpResponse::Ok()
|
||||||
|
.body("data")
|
||||||
|
}
|
||||||
|
fn main() {
|
||||||
|
let app = App::new()
|
||||||
|
.default_encoding(ContentEncoding::Identity) // <- disable compression for all routes
|
||||||
|
.resource("/index.html", |r| r.with(index));
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
## JSON Request
|
## JSON Request
|
||||||
|
|
||||||
There are several options for json body deserialization.
|
There are several options for json body deserialization.
|
||||||
|
|
|
@ -350,7 +350,7 @@ impl<S> App<S> where S: 'static {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Set default content encoding. `ContentEncoding::Auto` is set by default.
|
/// Set default content encoding. `ContentEncoding::Auto` is set by default.
|
||||||
pub fn default_encoding<F>(mut self, encoding: ContentEncoding) -> App<S>
|
pub fn default_encoding(mut self, encoding: ContentEncoding) -> App<S>
|
||||||
{
|
{
|
||||||
{
|
{
|
||||||
let parts = self.parts.as_mut().expect("Use after finish");
|
let parts = self.parts.as_mut().expect("Use after finish");
|
||||||
|
|
Loading…
Reference in a new issue