Module ntex::web::guard

source ·
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.