Module ntex::web::guard[][src]

Expand description

Route match guards.

Guards are one of the ways how ntex web router chooses a handler service. In essence it is just a function that accepts a reference to a RequestHead instance and returns a boolean. It is possible to add guards to scopes, resources and routes. ntex provide several guards by default, like various http methods, header, etc. To become a guard, type must implement Guard trait. Simple functions coulds guards as well.

Guards can not modify the request object. But it is possible to store extra attributes on a request by using the Extensions container. Extensions containers are available via the RequestHead::extensions() method.

use ntex::http::Method;
use ntex::web::{self, guard, App, HttpResponse};

fn main() {
    App::new().service(web::resource("/index.html").route(
        web::route()
             .guard(guard::Post())
             .guard(guard::fn_guard(|head| head.method == Method::GET))
             .to(|| async { HttpResponse::MethodNotAllowed() }))
    );
}

Structs

Matches if all of supplied guards.

Matches if any of supplied guards matche.

Traits

Trait defines resource guards. Guards are used for route selection.

Functions

Return guard that matches if all of the supplied guards.

Return guard that matches if any of supplied guards.

Predicate to match CONNECT http method

Predicate to match DELETE http method

Guard to match GET http method

Predicate to match HEAD http method

Return predicate that matches if request contains specified header and value.

Return predicate that matches if request contains specified Host name.

Predicate to match specified http method

Return guard that matches if supplied guard does not match.

Predicate to match OPTIONS http method

Predicate to match PATCH http method

Predicate to match POST http method

Predicate to match PUT http method

Predicate to match TRACE http method

Create guard object for supplied function.