Expand description

Routing and runtime macros for Actix Web.

Actix Web Re-exports

Actix Web re-exports a version of this crate in it’s entirety so you usually don’t have to specify a dependency on this crate explicitly. Sometimes, however, updates are made to this crate before the actix-web dependency is updated. Therefore, code examples here will show explicit imports. Check the latest actix-web attributes docs to see which macros are re-exported.

Runtime Setup

Used for setting up the actix async runtime. See main macro docs.

#[actix_web_codegen::main] // or `#[actix_web::main]` in Actix Web apps
async fn main() {
    async { println!("Hello world"); }.await
}

Single Method Handler

There is a macro to set up a handler for each of the most common HTTP methods that also define additional guards and route-specific middleware.

See docs for: GET, POST, PATCH, PUT, DELETE, HEAD, CONNECT, OPTIONS, TRACE

#[get("/test")]
async fn get_handler() -> HttpResponse {
    HttpResponse::Ok().finish()
}

Multiple Method Handlers

Similar to the single method handler macro but takes one or more arguments for the HTTP methods it should respond to. See route macro docs.

#[route("/test", method="GET", method="HEAD")]
async fn get_and_head_handler() -> HttpResponse {
    HttpResponse::Ok().finish()
}

Attribute Macros

Creates route handler with actix_web::guard::Connect.

Creates route handler with actix_web::guard::Delete.

Creates route handler with actix_web::guard::Get.

Creates route handler with actix_web::guard::Head.

Marks async main function as the actix system entry-point.

Creates route handler with actix_web::guard::Options.

Creates route handler with actix_web::guard::Patch.

Creates route handler with actix_web::guard::Post.

Creates route handler with actix_web::guard::Put.

Creates resource handler, allowing multiple HTTP method guards.

Marks async test functions to use the actix system entry-point.

Creates route handler with actix_web::guard::Trace.