ID de la chaîne de requête

Le middleware Request Id est très flexible. Le générateur (IdGenerator) est utilisé pour créer des ID. Vous pouvez définir votre propre générateur d'ID tant qu'il implémente le trait IdGenerator. Le générateur par défaut est UlidGenerator.

De plus, vous pouvez contrôler s'il faut écraser un requestid déjà existant. Vous pouvez également configurer des éléments comme header_name. Pour plus de détails, veuillez consulter la documentation.

Exemple de code

main.rs
Cargo.toml
request-id/src/main.rs
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;
}