ドキュメントを検索
Request Idミドルウェアは非常に柔軟性があります。IDジェネレータ(IdGenerator)はIDを生成するために使用され、IdGeneratorトレイトを実装するだけで独自のIDジェネレータを定義できます。デフォルトで提供されるジェネレータはUlidGeneratorです。
IdGenerator
UlidGenerator
また、既存のrequestidを上書きするかどうかを制御できます。さらにheader_nameなどの設定も可能です。詳細はドキュメントを参照してください。
requestid
header_name
サンプルコード
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; }