Barra Final

Un middleware para agregar o eliminar automáticamente la barra final /.

Casos de Uso

El middleware Barra Final es especialmente útil en los siguientes escenarios:

  • Normalización de URL: Garantiza que todas las URL sigan un formato consistente (agregando o eliminando uniformemente barras finales), lo que ayuda a mejorar el SEO y evita problemas de contenido duplicado.

  • Manejo Simplificado de Rutas: Elimina la necesidad de escribir lógica de enrutamiento separada para URL con y sin barras finales, ya que el middleware maneja automáticamente esta conversión.

  • Compatibilidad: Algunos clientes pueden agregar o eliminar automáticamente barras finales de las URL. Este middleware asegura que las solicitudes se enruten correctamente.

  • Gestión de Redirecciones: Puede configurarse para redirigir automáticamente las URL con barras finales a aquellas sin ellas (o viceversa), mejorando la experiencia del usuario.

  • Evitar Conflictos de Rutas: En muchos frameworks web, /ruta y /ruta/ pueden tratarse como rutas diferentes. Este middleware puede manejarlas de manera uniforme.

Código de Ejemplo

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