[][src]Struct actix_web::Route

pub struct Route { /* fields omitted */ }

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]

pub fn new() -> Route[src]

Create new route which matches any request.

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]

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]

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 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 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]

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]

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]

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]

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]

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]

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]

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]

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]

Map this service's init error to a different error, returning a new service.

Auto Trait Implementations

impl !Send for Route

impl !Sync for Route

Blanket Implementations

impl<T> From for T[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T, C> IntoNewService for T where
    T: NewService<C>, 
[src]

impl<T> Erased for T

impl<T, C> IntoConfigurableNewService for T where
    T: NewService<C>, 
[src]