ID de Cadena de Solicitud

El middleware de ID de solicitud es altamente flexible. El generador de ID (IdGenerator) se utiliza para generar identificadores, y puedes definir tu propio generador siempre que implemente el rasgo IdGenerator. El generador predeterminado proporcionado es UlidGenerator.

Además, puedes controlar si se sobrescribe un requestid existente. También puedes configurar header_name y otras opciones. Para más detalles, consulta la documentación.

Código de Ejemplo

main.rs
Cargo.toml
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:8698").bind().await;
    let router = Router::new().hoop(RequestId::new()).get(hello);
    Server::new(acceptor).serve(router).await;
}