Barre oblique finale

Un middleware pour ajouter ou supprimer automatiquement la barre oblique finale /.

Cas d'utilisation

Le middleware Barre oblique finale est particulièrement utile dans les scénarios suivants :

  • Normalisation d'URL : Garantit que toutes les URL suivent un format cohérent (en ajoutant ou supprimant uniformément les barres obliques finales), ce qui aide à améliorer le référencement naturel et à éviter les problèmes de contenu dupliqué.

  • Gestion simplifiée des routes : Élimine la nécessité d'écrire une logique de routage distincte pour les URL avec et sans barres obliques finales, car le middleware gère automatiquement cette conversion.

  • Compatibilité : Certains clients peuvent automatiquement ajouter ou supprimer les barres obliques finales des URL. Ce middleware garantit que les requêtes sont correctement acheminées.

  • Gestion des redirections : Peut être configuré pour rediriger automatiquement les URL avec barres obliques finales vers celles sans (ou vice versa), améliorant ainsi l'expérience utilisateur.

  • Éviter les conflits de routes : Dans de nombreux frameworks web, /chemin et /chemin/ peuvent être traités comme des routes différentes. Ce middleware peut les gérer de manière uniforme.

Exemple de code

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;
}