[−][src]Struct actix_web::Route
Resource route definition
Route uses builder-like pattern for configuration. If handler is not explicitly set, default 404 Not Found handler is used.
Methods
impl<P: 'static> Route<P>
[src]
impl<P: 'static> Route<P>
[src]
pub fn method(self, method: Method) -> Self
[src]
Add method guard to the route.
App::new().service(web::resource("/path").route( web::get() .method(http::Method::CONNECT) .guard(guard::Header("content-type", "text/plain")) .to(|req: HttpRequest| HttpResponse::Ok())) );
pub fn guard<F: Guard + 'static>(self, f: F) -> Self
[src]
Add guard to the route.
App::new().service(web::resource("/path").route( web::route() .guard(guard::Get()) .guard(guard::Header("content-type", "text/plain")) .to(|req: HttpRequest| HttpResponse::Ok())) );
pub fn to<F, T, R>(self, handler: F) -> Route<P> where
F: Factory<T, R> + 'static,
T: FromRequest<P> + 'static,
R: Responder + 'static,
[src]
F: Factory<T, R> + 'static,
T: FromRequest<P> + 'static,
R: Responder + 'static,
Set handler function, use request extractors for parameters.
#[macro_use] extern crate serde_derive; use actix_web::{web, http, App}; #[derive(Deserialize)] struct Info { username: String, } /// extract path info using serde fn index(info: web::Path<Info>) -> String { format!("Welcome {}!", info.username) } fn main() { let app = App::new().service( web::resource("/{username}/index.html") // <- define path parameters .route(web::get().to(index)) // <- register handler ); }
It is possible to use multiple extractors for one handler function.
use actix_web::{web, App}; #[derive(Deserialize)] struct Info { username: String, } /// extract path info using serde fn index(path: web::Path<Info>, query: web::Query<HashMap<String, String>>, body: web::Json<Info>) -> String { format!("Welcome {}!", path.username) } fn main() { let app = App::new().service( web::resource("/{username}/index.html") // <- define path parameters .route(web::get().to(index)) ); }
pub fn to_async<F, T, R>(self, handler: F) -> Self where
F: AsyncFactory<T, R>,
T: FromRequest<P> + 'static,
R: IntoFuture + 'static,
R::Item: Into<Response>,
R::Error: Into<Error>,
[src]
F: AsyncFactory<T, R>,
T: FromRequest<P> + 'static,
R: IntoFuture + 'static,
R::Item: Into<Response>,
R::Error: Into<Error>,
Set async handler function, use request extractors for parameters.
This method has to be used if your handler function returns impl Future<>
#[macro_use] extern crate serde_derive; use actix_web::{web, App, Error}; use futures::Future; #[derive(Deserialize)] struct Info { username: String, } /// extract path info using serde fn index(info: web::Path<Info>) -> impl Future<Item = &'static str, Error = Error> { ok("Hello World!") } fn main() { let app = App::new().service( web::resource("/{username}/index.html") // <- define path parameters .route(web::get().to_async(index)) // <- register async handler ); }
pub fn data<C: 'static>(self, data: C) -> Self
[src]
Provide route specific data. This method allows to add extractor
configuration or specific state available via RouteData<T>
extractor.
use actix_web::{web, App}; /// extract text data from request fn index(body: String) -> String { format!("Body {}!", body) } fn main() { let app = App::new().service( web::resource("/index.html").route( web::get() // limit size of the payload .data(web::PayloadConfig::new(4096)) // register handler .to(index) )); }
Trait Implementations
impl<P> NewService<()> for Route<P>
[src]
type Request = ServiceRequest<P>
Requests handled by the service.
type Response = ServiceResponse
Responses given by the service
type Error = Error
Errors produced by the service
type InitError = ()
Errors produced while building a service.
type Service = RouteService<P>
The Service
value created by this factory
type Future = CreateRouteService<P>
The future of the Service
instance.
fn new_service(&self, _: &()) -> Self::Future
[src]
fn apply<T, T1, B, B1>(
self,
transform: T1,
service: B1
) -> AndThenTransform<T, Self, B, Config> where
B: NewService<Config, InitError = Self::InitError>,
B1: IntoNewService<B, Config>,
T: Transform<<B as NewService<Config>>::Service, Request = Self::Response, InitError = Self::InitError>,
T1: IntoTransform<T, <B as NewService<Config>>::Service>,
<T as Transform<<B as NewService<Config>>::Service>>::Error: From<Self::Error>,
[src]
self,
transform: T1,
service: B1
) -> AndThenTransform<T, Self, B, Config> where
B: NewService<Config, InitError = Self::InitError>,
B1: IntoNewService<B, Config>,
T: Transform<<B as NewService<Config>>::Service, Request = Self::Response, InitError = Self::InitError>,
T1: IntoTransform<T, <B as NewService<Config>>::Service>,
<T as Transform<<B as NewService<Config>>::Service>>::Error: From<Self::Error>,
Apply transform service to specified service and use it as a next service in chain. Read more
fn apply_fn<B, I, F, Out>(
self,
service: I,
f: F
) -> AndThenApplyNewService<Self, B, F, Out, Config> where
B: NewService<Config, Error = Self::Error, InitError = Self::InitError>,
F: FnMut(Self::Response, &mut <B as NewService<Config>>::Service) -> Out,
I: IntoNewService<B, Config>,
Out: IntoFuture,
<Out as IntoFuture>::Error: Into<Self::Error>,
[src]
self,
service: I,
f: F
) -> AndThenApplyNewService<Self, B, F, Out, Config> where
B: NewService<Config, Error = Self::Error, InitError = Self::InitError>,
F: FnMut(Self::Response, &mut <B as NewService<Config>>::Service) -> Out,
I: IntoNewService<B, Config>,
Out: IntoFuture,
<Out as IntoFuture>::Error: Into<Self::Error>,
Apply function to specified service and use it as a next service in chain. Read more
fn apply_cfg<F, C, S, U>(
self,
service: U,
f: F
) -> AndThenNewService<Self, ApplyConfig<F, S, Config, C>, Config> where
F: Fn(&Config) -> C,
S: NewService<C, Request = Self::Response, Error = Self::Error, InitError = Self::InitError>,
U: IntoNewService<S, C>,
[src]
self,
service: U,
f: F
) -> AndThenNewService<Self, ApplyConfig<F, S, Config, C>, Config> where
F: Fn(&Config) -> C,
S: NewService<C, Request = Self::Response, Error = Self::Error, InitError = Self::InitError>,
U: IntoNewService<S, C>,
Map this service's config type to a different config, and use for nested service Read more
fn and_then<F, B>(self, new_service: F) -> AndThenNewService<Self, B, Config> where
B: NewService<Config, Request = Self::Response, Error = Self::Error, InitError = Self::InitError>,
F: IntoNewService<B, Config>,
[src]
B: NewService<Config, Request = Self::Response, Error = Self::Error, InitError = Self::InitError>,
F: IntoNewService<B, Config>,
Call another service after call to this one has resolved successfully.
fn from_err<E>(self) -> FromErrNewService<Self, E, Config> where
E: From<Self::Error>,
[src]
E: From<Self::Error>,
NewService
that create service to map this service's error and new service's init error to any error implementing From
for this services
Error`. Read more
fn then<F, B>(self, new_service: F) -> ThenNewService<Self, B, Config> where
B: NewService<Config, Request = Result<Self::Response, Self::Error>, Error = Self::Error, InitError = Self::InitError>,
F: IntoNewService<B, Config>,
[src]
B: NewService<Config, Request = Result<Self::Response, Self::Error>, Error = Self::Error, InitError = Self::InitError>,
F: IntoNewService<B, Config>,
Create NewService
to chain on a computation for when a call to the service finished, passing the result of the call to the next service B
. Read more
fn map<F, R>(self, f: F) -> MapNewService<Self, F, R, Config> where
F: FnMut(Self::Response) -> R,
[src]
F: FnMut(Self::Response) -> R,
Map this service's output to a different type, returning a new service of the resulting type. Read more
fn map_err<F, E>(self, f: F) -> MapErrNewService<Self, F, E, Config> where
F: Fn(Self::Error) -> E + Clone,
[src]
F: Fn(Self::Error) -> E + Clone,
Map this service's error to a different error, returning a new service.
fn map_init_err<F, E>(self, f: F) -> MapInitErr<Self, F, E, Config> where
F: Fn(Self::InitError) -> E,
[src]
F: Fn(Self::InitError) -> E,
Map this service's init error to a different error, returning a new service.
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From for T
[src]
impl<T, U> TryFrom for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T> Borrow for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> BorrowMut for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T, U> TryInto 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.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T, C> IntoNewService for T where
T: NewService<C>,
[src]
T: NewService<C>,
fn into_new_service(self) -> T
[src]
impl<T, C> IntoConfigurableNewService for T where
T: NewService<C>,
[src]
T: NewService<C>,