Module actix_web::guard [−][src]
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
AllGuard | Matches if all of supplied guards. |
AnyGuard | Matches any of supplied guards. |
Traits
Guard | Trait defines resource guards. Guards are used for route selection. |
Functions
All | Return guard that matches if all of the supplied guards. |
Any | Return guard that matches if any of supplied guards. |
Connect | Predicate to match CONNECT HTTP method. |
Delete | Predicate to match DELETE HTTP method. |
Get | Guard to match GET HTTP method. |
Head | Predicate to match HEAD HTTP method. |
Header | Return predicate that matches if request contains specified header and value. |
Host | Return predicate that matches if request contains specified Host name. |
Method | Predicate to match specified HTTP method. |
Not | Return guard that matches if supplied guard does not match. |
Options | Predicate to match OPTIONS HTTP method. |
Patch | Predicate to match PATCH HTTP method. |
Post | Predicate to match POST HTTP method. |
Put | Predicate to match PUT HTTP method. |
Trace | Predicate to match TRACE HTTP method. |
fn_guard | Create guard object for supplied function. |