Actix Request Identifier Middleware

Latest Version Documentation Rust Hits-of-Code License License

actix-request-identifier implements a middleware for actix-web that generates an ID for each incomming request. By default, a UUID v4 is generated for each request using uuid. The request ID is set via the x-request-id HTTP header (which can be configured) and can be extracted from the request using RequestId.

Example

```rust use actixrequestidentifier::{RequestId, RequestIdentifier}; use actix_web::{get, App, HttpServer, Responder};

[get("/")]

async fn showrequestid(id: RequestId) -> impl Responder { format!("{}", id.as_str()) }

[actix_web::main] // or #[tokio::main]

async fn main() -> std::io::Result<()> { HttpServer::new(|| { App::new() .service(showrequestid) .wrap(RequestIdentifier::with_uuid()) }) .bind(("127.0.0.1", 8080))? .run() .await } ```

The response looks like this:

``` $ curl -i 127.0.0.1:8080/ HTTP/1.1 200 OK content-length: 36 x-request-id: 5f099854-2117-49b3-b252-d6693a85acc5 date: Mon, 20 Apr 2020 06:53:49 GMT

5f099854-2117-49b3-b252-d6693a85acc5 ```

Supported actix-web Versions

| crate version | actix-web version | | ------------- | ------------------- | | 0.1.0 | v2 | | 0.2.0 | v3 | | 4.0.0 | v4 |

License

actix-request-identifier is licensed under either of the following at your option: