From 86a21c956c247ab098a7631bc18ae60032ef5eac Mon Sep 17 00:00:00 2001 From: Nikolay Kim Date: Mon, 25 Mar 2019 13:02:10 -0700 Subject: [PATCH] rename .middleware to .wrap --- actix-session/src/cookie.rs | 6 ++--- actix-session/src/lib.rs | 2 +- examples/basic.rs | 6 ++--- src/app.rs | 4 +-- src/middleware/cors.rs | 6 ++--- src/middleware/defaultheaders.rs | 2 +- src/middleware/errhandlers.rs | 2 +- src/middleware/identity.rs | 8 +++--- src/middleware/logger.rs | 4 +-- src/resource.rs | 4 +-- src/scope.rs | 43 +++++++++++++++++++++++++++++--- tests/test_server.rs | 14 +++++------ 12 files changed, 68 insertions(+), 33 deletions(-) diff --git a/actix-session/src/cookie.rs b/actix-session/src/cookie.rs index 37c552ea8..2d5bd7089 100644 --- a/actix-session/src/cookie.rs +++ b/actix-session/src/cookie.rs @@ -178,7 +178,7 @@ impl CookieSessionInner { /// use actix_web::{web, App, HttpResponse, HttpServer}; /// /// fn main() { -/// let app = App::new().middleware( +/// let app = App::new().wrap( /// CookieSession::signed(&[0; 32]) /// .domain("www.rust-lang.org") /// .name("actix_session") @@ -323,7 +323,7 @@ mod tests { fn cookie_session() { let mut app = test::init_service( App::new() - .middleware(CookieSession::signed(&[0; 32]).secure(false)) + .wrap(CookieSession::signed(&[0; 32]).secure(false)) .service(web::resource("/").to(|ses: Session| { let _ = ses.set("counter", 100); "test" @@ -342,7 +342,7 @@ mod tests { fn cookie_session_extractor() { let mut app = test::init_service( App::new() - .middleware(CookieSession::signed(&[0; 32]).secure(false)) + .wrap(CookieSession::signed(&[0; 32]).secure(false)) .service(web::resource("/").to(|ses: Session| { let _ = ses.set("counter", 100); "test" diff --git a/actix-session/src/lib.rs b/actix-session/src/lib.rs index ae0fd23cd..819773c6a 100644 --- a/actix-session/src/lib.rs +++ b/actix-session/src/lib.rs @@ -31,7 +31,7 @@ //! fn main() -> std::io::Result<()> { //! # std::thread::spawn(|| //! HttpServer::new( -//! || App::new().middleware( +//! || App::new().wrap( //! CookieSession::signed(&[0; 32]) // <- create cookie based session middleware //! .secure(false) //! ) diff --git a/examples/basic.rs b/examples/basic.rs index ee7e4c967..911196570 100644 --- a/examples/basic.rs +++ b/examples/basic.rs @@ -26,9 +26,9 @@ fn main() -> std::io::Result<()> { HttpServer::new(|| { App::new() - .middleware(middleware::DefaultHeaders::new().header("X-Version", "0.2")) - .middleware(middleware::Compress::default()) - .middleware(middleware::Logger::default()) + .wrap(middleware::DefaultHeaders::new().header("X-Version", "0.2")) + .wrap(middleware::Compress::default()) + .wrap(middleware::Logger::default()) .service(index) .service(no_params) .service( diff --git a/src/app.rs b/src/app.rs index 991288dd7..94a47afe6 100644 --- a/src/app.rs +++ b/src/app.rs @@ -108,7 +108,7 @@ where } /// Register a middleware. - pub fn middleware( + pub fn wrap( self, mw: F, ) -> AppRouter< @@ -322,7 +322,7 @@ where } /// Register a middleware. - pub fn middleware( + pub fn wrap( self, mw: F, ) -> AppRouter< diff --git a/src/middleware/cors.rs b/src/middleware/cors.rs index 9ba09256c..b6acf4299 100644 --- a/src/middleware/cors.rs +++ b/src/middleware/cors.rs @@ -1,8 +1,8 @@ //! Cross-origin resource sharing (CORS) for Actix applications //! //! CORS middleware could be used with application and with resource. -//! Cors middleware could be used as parameter for `App::middleware()`, -//! `Resource::middleware()` or `Scope::middleware()` methods. +//! Cors middleware could be used as parameter for `App::wrap()`, +//! `Resource::wrap()` or `Scope::wrap()` methods. //! //! # Example //! @@ -16,7 +16,7 @@ //! //! fn main() -> std::io::Result<()> { //! HttpServer::new(|| App::new() -//! .middleware( +//! .wrap( //! Cors::new() // <- Construct CORS middleware builder //! .allowed_origin("https://www.rust-lang.org/") //! .allowed_methods(vec!["GET", "POST"]) diff --git a/src/middleware/defaultheaders.rs b/src/middleware/defaultheaders.rs index 4d879cda7..ca5b8f807 100644 --- a/src/middleware/defaultheaders.rs +++ b/src/middleware/defaultheaders.rs @@ -18,7 +18,7 @@ use crate::service::{ServiceRequest, ServiceResponse}; /// /// fn main() { /// let app = App::new() -/// .middleware(middleware::DefaultHeaders::new().header("X-Version", "0.2")) +/// .wrap(middleware::DefaultHeaders::new().header("X-Version", "0.2")) /// .service( /// web::resource("/test") /// .route(web::get().to(|| HttpResponse::Ok())) diff --git a/src/middleware/errhandlers.rs b/src/middleware/errhandlers.rs index ca9b1cd59..4f2537221 100644 --- a/src/middleware/errhandlers.rs +++ b/src/middleware/errhandlers.rs @@ -41,7 +41,7 @@ type ErrorHandler = Fn(ServiceResponse) -> Result> /// /// fn main() { /// let app = App::new() -/// .middleware( +/// .wrap( /// ErrorHandlers::new() /// .handler(http::StatusCode::INTERNAL_SERVER_ERROR, render_500), /// ) diff --git a/src/middleware/identity.rs b/src/middleware/identity.rs index d0a4146ae..e94f99db1 100644 --- a/src/middleware/identity.rs +++ b/src/middleware/identity.rs @@ -37,7 +37,7 @@ //! } //! //! fn main() { -//! let app = App::new().middleware(IdentityService::new( +//! let app = App::new().wrap(IdentityService::new( //! // <- create identity middleware //! CookieIdentityPolicy::new(&[0; 32]) // <- create cookie session backend //! .name("auth-cookie") @@ -179,7 +179,7 @@ pub trait IdentityPolicy: Sized + 'static { /// use actix_web::middleware::identity::{CookieIdentityPolicy, IdentityService}; /// /// fn main() { -/// let app = App::new().middleware(IdentityService::new( +/// let app = App::new().wrap(IdentityService::new( /// // <- create identity middleware /// CookieIdentityPolicy::new(&[0; 32]) // <- create cookie session backend /// .name("auth-cookie") @@ -381,7 +381,7 @@ impl CookieIdentityInner { /// use actix_web::App; /// /// fn main() { -/// let app = App::new().middleware(IdentityService::new( +/// let app = App::new().wrap(IdentityService::new( /// // <- create identity middleware /// CookieIdentityPolicy::new(&[0; 32]) // <- construct cookie policy /// .domain("www.rust-lang.org") @@ -473,7 +473,7 @@ mod tests { fn test_identity() { let mut srv = test::init_service( App::new() - .middleware(IdentityService::new( + .wrap(IdentityService::new( CookieIdentityPolicy::new(&[0; 32]) .domain("www.rust-lang.org") .name("actix_auth") diff --git a/src/middleware/logger.rs b/src/middleware/logger.rs index 4af3e10d8..42f344f03 100644 --- a/src/middleware/logger.rs +++ b/src/middleware/logger.rs @@ -41,8 +41,8 @@ use crate::{HttpMessage, HttpResponse}; /// env_logger::init(); /// /// let app = App::new() -/// .middleware(Logger::default()) -/// .middleware(Logger::new("%a %{User-Agent}i")); +/// .wrap(Logger::default()) +/// .wrap(Logger::new("%a %{User-Agent}i")); /// } /// ``` /// diff --git a/src/resource.rs b/src/resource.rs index 5d5671310..632e9c332 100644 --- a/src/resource.rs +++ b/src/resource.rs @@ -550,7 +550,7 @@ mod tests { use crate::test::{call_success, init_service, TestRequest}; use crate::{web, App, Error, HttpResponse}; - fn md1( + fn md( req: ServiceRequest

, srv: &mut S, ) -> impl IntoFuture, Error = Error> @@ -573,7 +573,7 @@ mod tests { let mut srv = init_service( App::new().service( web::resource("/test") - .wrap(md1) + .wrap(md) .route(web::get().to(|| HttpResponse::Ok())), ), ); diff --git a/src/scope.rs b/src/scope.rs index 4a894450c..1be594f1b 100644 --- a/src/scope.rs +++ b/src/scope.rs @@ -205,7 +205,7 @@ where /// This is similar to `App's` middlewares, but middleware get invoked on scope level. /// Scope level middlewares are not allowed to change response /// type (i.e modify response's body). - pub fn middleware( + pub fn wrap( self, mw: F, ) -> Scope< @@ -476,11 +476,13 @@ impl NewService for ScopeEndpoint

{ mod tests { use actix_service::Service; use bytes::Bytes; + use futures::{Future, IntoFuture}; use crate::dev::{Body, ResponseBody}; - use crate::http::{Method, StatusCode}; - use crate::test::{block_on, init_service, TestRequest}; - use crate::{guard, web, App, HttpRequest, HttpResponse}; + use crate::http::{header, HeaderValue, Method, StatusCode}; + use crate::service::{ServiceRequest, ServiceResponse}; + use crate::test::{block_on, call_success, init_service, TestRequest}; + use crate::{guard, web, App, Error, HttpRequest, HttpResponse}; #[test] fn test_scope() { @@ -827,4 +829,37 @@ mod tests { let resp = block_on(srv.call(req)).unwrap(); assert_eq!(resp.status(), StatusCode::METHOD_NOT_ALLOWED); } + + fn md( + req: ServiceRequest

, + srv: &mut S, + ) -> impl IntoFuture, Error = Error> + where + S: Service< + Request = ServiceRequest

, + Response = ServiceResponse, + Error = Error, + >, + { + srv.call(req).map(|mut res| { + res.headers_mut() + .insert(header::CONTENT_TYPE, HeaderValue::from_static("0001")); + res + }) + } + + #[test] + fn test_middleware() { + let mut srv = + init_service(App::new().service(web::scope("app").wrap(md).service( + web::resource("/test").route(web::get().to(|| HttpResponse::Ok())), + ))); + let req = TestRequest::with_uri("/app/test").to_request(); + let resp = call_success(&mut srv, req); + assert_eq!(resp.status(), StatusCode::OK); + assert_eq!( + resp.headers().get(header::CONTENT_TYPE).unwrap(), + HeaderValue::from_static("0001") + ); + } } diff --git a/tests/test_server.rs b/tests/test_server.rs index 965d444fc..2742164ab 100644 --- a/tests/test_server.rs +++ b/tests/test_server.rs @@ -59,7 +59,7 @@ fn test_body_gzip() { let mut srv = TestServer::new(|| { h1::H1Service::new( App::new() - .middleware(middleware::Compress::new(ContentEncoding::Gzip)) + .wrap(middleware::Compress::new(ContentEncoding::Gzip)) .service(web::resource("/").route(web::to(|| Response::Ok().body(STR)))), ) }); @@ -87,7 +87,7 @@ fn test_body_gzip_large() { let data = srv_data.clone(); h1::H1Service::new( App::new() - .middleware(middleware::Compress::new(ContentEncoding::Gzip)) + .wrap(middleware::Compress::new(ContentEncoding::Gzip)) .service( web::resource("/") .route(web::to(move || Response::Ok().body(data.clone()))), @@ -121,7 +121,7 @@ fn test_body_gzip_large_random() { let data = srv_data.clone(); h1::H1Service::new( App::new() - .middleware(middleware::Compress::new(ContentEncoding::Gzip)) + .wrap(middleware::Compress::new(ContentEncoding::Gzip)) .service( web::resource("/") .route(web::to(move || Response::Ok().body(data.clone()))), @@ -149,7 +149,7 @@ fn test_body_chunked_implicit() { let mut srv = TestServer::new(move || { h1::H1Service::new( App::new() - .middleware(middleware::Compress::new(ContentEncoding::Gzip)) + .wrap(middleware::Compress::new(ContentEncoding::Gzip)) .service(web::resource("/").route(web::get().to(move || { Response::Ok().streaming(once(Ok::<_, Error>(Bytes::from_static( STR.as_ref(), @@ -181,7 +181,7 @@ fn test_body_br_streaming() { let mut srv = TestServer::new(move || { h1::H1Service::new( App::new() - .middleware(middleware::Compress::new(ContentEncoding::Br)) + .wrap(middleware::Compress::new(ContentEncoding::Br)) .service(web::resource("/").route(web::to(move || { Response::Ok().streaming(once(Ok::<_, Error>(Bytes::from_static( STR.as_ref(), @@ -254,7 +254,7 @@ fn test_body_deflate() { let mut srv = TestServer::new(move || { h1::H1Service::new( App::new() - .middleware(middleware::Compress::new(ContentEncoding::Deflate)) + .wrap(middleware::Compress::new(ContentEncoding::Deflate)) .service( web::resource("/").route(web::to(move || Response::Ok().body(STR))), ), @@ -281,7 +281,7 @@ fn test_body_brotli() { let mut srv = TestServer::new(move || { h1::H1Service::new( App::new() - .middleware(middleware::Compress::new(ContentEncoding::Br)) + .wrap(middleware::Compress::new(ContentEncoding::Br)) .service( web::resource("/").route(web::to(move || Response::Ok().body(STR))), ),