5个版本 (3个稳定版)
4.2.0 | 2024年4月13日 |
---|---|
4.1.0 | 2023年1月13日 |
4.0.0 | 2022年8月25日 |
0.2.0 | 2020年10月7日 |
0.1.0 | 2020年4月20日 |
#123 in HTTP服务器
611 每月下载量
用于 2 个库
20KB
318 行
Actix 请求标识符中间件
actix-request-identifier
实现了一个为 actix-web
生成的中间件,为每个传入请求生成一个 ID。默认情况下,使用 uuid
生成每个请求的 UUID v4。请求 ID 通过 x-request-id
HTTP 头部(可以配置)设置,并且可以使用 RequestId
从请求中提取。
示例
use actix_request_identifier::{RequestId, RequestIdentifier};
use actix_web::{get, App, HttpServer, Responder};
#[get("/")]
async fn show_request_id(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(show_request_id)
.wrap(RequestIdentifier::with_uuid())
})
.bind(("127.0.0.1", 8080))?
.run()
.await
}
响应看起来像这样
$ 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
如果您想按时间顺序排序请求 ID,可以启用 uuid-v7-generator
功能和 RequestIdentifier::with_uuid_v7()
。这将使用 UUID 版本 7 生成请求 ID。
支持的 actix-web
版本
crate 版本 | actix-web 版本 |
---|---|
0.1.0 |
v2 |
0.2.0 |
v3 |
4.0.0 |
v4 |
许可
actix-request-identifier
可选择以下任一许可
- Apache License, Version 2.0, (LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT License (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
依赖
~14–25MB
~448K SLoC