Barra Finale

Un middleware per aggiungere o rimuovere automaticamente la barra finale /.

Casi d'Uso

Il middleware Barra Finale è particolarmente utile nei seguenti scenari:

  • Normalizzazione URL: Garantisce che tutti gli URL seguano un formato coerente (aggiungendo o rimuovendo uniformemente le barre finali), contribuendo a migliorare la SEO ed evitare problemi di contenuti duplicati.

  • Gestione Semplificata delle Route: Elimina la necessità di scrivere logiche di routing separate per URL con e senza barre finali, poiché il middleware gestisce automaticamente questa conversione.

  • Compatibilità: Alcuni client potrebbero aggiungere o rimuovere automaticamente le barre finali dagli URL. Questo middleware garantisce che le richieste vengano instradate correttamente.

  • Gestione dei Reindirizzamenti: Può essere configurato per reindirizzare automaticamente gli URL con barre finali verso quelli senza (o viceversa), migliorando l'esperienza utente.

  • Prevenzione Conflitti di Route: In molti framework web, /percorso e /percorso/ potrebbero essere trattati come route diverse. Questo middleware può gestirle in modo uniforme.

Codice di Esempio

main.rs
Cargo.toml
use salvo::prelude::*;
use salvo::trailing_slash::add_slash;

#[handler]
async fn hello() -> &'static str {
    "Hello"
}

#[tokio::main]
async fn main() {
    tracing_subscriber::fmt().init();
    let router = Router::with_hoop(add_slash())
        .push(Router::with_path("hello").get(hello))
        .push(Router::with_path("hello.world").get(hello));
    let acceptor = TcpListener::new("0.0.0.0:8698").bind().await;
    Server::new(acceptor).serve(router).await;
}