[−][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 Route
[src]
impl Route
[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 where
F: Factory<T, R> + 'static,
T: FromRequest + 'static,
R: Responder + 'static,
[src]
F: Factory<T, R> + 'static,
T: FromRequest + '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 + 'static,
R: IntoFuture + 'static,
R::Item: Responder,
R::Error: Into<Error>,
[src]
F: AsyncFactory<T, R>,
T: FromRequest + 'static,
R: IntoFuture + 'static,
R::Item: Responder,
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 ); }
Trait Implementations
impl NewService for Route
[src]
type Config = ()
Service factory configuration
type Request = ServiceRequest
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
The Service
value created by this factory
type Future = CreateRouteService
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> where
B: NewService<Config = Self::Config, InitError = Self::InitError>,
B1: IntoNewService<B>,
T: Transform<<B as NewService>::Service, Request = Self::Response, InitError = Self::InitError>,
T1: IntoTransform<T, <B as NewService>::Service>,
<T as Transform<<B as NewService>::Service>>::Error: From<Self::Error>,
[src]
self,
transform: T1,
service: B1
) -> AndThenTransform<T, Self, B> where
B: NewService<Config = Self::Config, InitError = Self::InitError>,
B1: IntoNewService<B>,
T: Transform<<B as NewService>::Service, Request = Self::Response, InitError = Self::InitError>,
T1: IntoTransform<T, <B as NewService>::Service>,
<T as Transform<<B as NewService>::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> where
B: NewService<Config = Self::Config, Error = Self::Error, InitError = Self::InitError>,
F: FnMut(Self::Response, &mut <B as NewService>::Service) -> Out,
I: IntoNewService<B>,
Out: IntoFuture,
<Out as IntoFuture>::Error: Into<Self::Error>,
[src]
self,
service: I,
f: F
) -> AndThenApplyNewService<Self, B, F, Out> where
B: NewService<Config = Self::Config, Error = Self::Error, InitError = Self::InitError>,
F: FnMut(Self::Response, &mut <B as NewService>::Service) -> Out,
I: IntoNewService<B>,
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 and_then<F, B>(self, new_service: F) -> AndThenNewService<Self, B> where
B: NewService<Config = Self::Config, Request = Self::Response, Error = Self::Error, InitError = Self::InitError>,
F: IntoNewService<B>,
[src]
B: NewService<Config = Self::Config, Request = Self::Response, Error = Self::Error, InitError = Self::InitError>,
F: IntoNewService<B>,
Call another service after call to this one has resolved successfully.
fn from_err<E>(self) -> FromErrNewService<Self, E> 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> where
B: NewService<Config = Self::Config, Request = Result<Self::Response, Self::Error>, Error = Self::Error, InitError = Self::InitError>,
F: IntoNewService<B>,
[src]
B: NewService<Config = Self::Config, Request = Result<Self::Response, Self::Error>, Error = Self::Error, InitError = Self::InitError>,
F: IntoNewService<B>,
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> 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> 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> where
F: Fn(Self::InitError) -> E,
[src]
F: Fn(Self::InitError) -> E,
Map this factory's init error to a different error, returning a new service.
fn map_config<F, C>(self, f: F) -> MapConfig<Self, F, C> where
F: Fn(&C) -> MappedConfig<Self::Config>,
[src]
F: Fn(&C) -> MappedConfig<Self::Config>,
Map config to a different error, returning a new service.
fn unit_config<C>(self) -> UnitConfig<Self, C> where
Self: NewService<Config = ()>,
[src]
Self: NewService<Config = ()>,
Replace config with unit
Auto Trait Implementations
Blanket Implementations
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> From<T> for 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.
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.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> IntoNewService<T> for T where
T: NewService,
[src]
T: NewService,