#ID de solicitud
El middleware de ID de solicitud es más flexible. El generador (IdGenerator) se utiliza para generar ID. Puede definir su propio generador de ID siempre que implemente el rasgo IdGenerator
.
Además, puede controlar si se sobrescribe el requestid
existente. También puede configurar header_name
, etc. Para obtener más detalles, [ver el documento](https://docs.rs/salvo_extra/latest/salvo_extra/request_id /index.html) .
Código de muestra
use salvo::prelude::*;
#[handler]
async fn hello(req: &mut Request) -> String {
format!("Request id: {:?}", req.header::<String>("x-request-id"))
}
#[tokio::main]
async fn main() {
tracing_subscriber::fmt().init();
let acceptor = TcpListener::new("0.0.0.0:5800").bind().await;
let router = Router::new().hoop(RequestId::new()).get(hello);
Server::new(acceptor).serve(router).await;
}
[package]
name = "example-request-id"
version.workspace = true
edition.workspace = true
publish.workspace = true
[dependencies]
salvo = { workspace = true, features = ["request-id"]}
tokio = { workspace = true, features = ["macros"] }
tracing.workspace = true
tracing-subscriber.workspace = true