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.