Module actix_web::guard [−][src]
Expand description
Route match guards.
Guards are one of the ways how actix-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. Actix provide several guards by default, like various
http methods, header, etc. To become a guard, type must implement Guard
trait. Simple functions could be 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 actix_web::{web, http, dev, 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 == http::Method::GET))
.to(|| HttpResponse::MethodNotAllowed()))
);
}
Structs
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.