pub fn resource<T: IntoPatterns>(path: T) -> Resource
Expand description
Creates a new resource for a specific path.
Resources may have dynamic path segments. For example, a resource with the path /a/{name}/c
would match all incoming requests with paths such as /a/b/c
, /a/1/c
, or /a/etc/c
.
A dynamic segment is specified in the form {identifier}
, where the identifier can be used
later in a request handler to access the matched value for that segment. This is done by looking
up the identifier in the Path
object returned by [HttpRequest.match_info()
] method.
By default, each segment matches the regular expression [^{}/]+
.
You can also specify a custom regex in the form {identifier:regex}
:
For instance, to route GET
-requests on any route matching /users/{userid}/{friend}
and store
userid
and friend
in the exposed Path
object:
use actix_web::{web, App, HttpResponse};
let app = App::new().service(
web::resource("/users/{userid}/{friend}")
.route(web::get().to(|| HttpResponse::Ok()))
.route(web::head().to(|| HttpResponse::MethodNotAllowed()))
);