es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo definir rutas anidadas simples en ASP.NET Core

¿Existe alguna forma integrada en ASP.NET Core para realizar enrutamiento anidado estándar de la misma manera que en la mayoría de los otros lenguajes? ¿Cómo hago en C# lo que muestro a continuación en Go y JS?

Ejemplo en Go usando chi:

r := chi.NewRouter()
r.Use(amiddleware)                           // Utilizar un middleware
r.Group(func(r chi.Router) {                 // Un grupo con configuración adicional
  r.Use(another)                             // Middleware que se aplica solo al grupo
  r.Route("/trunk", func(r chi.Router) {     // Primer nivel de enrutamiento anidado
    r.Route("/branch", func(r chi.Router) {  // Siguiente nivel
      r.Get("/leaf", Leaf)                   // Un punto final
    })
  })
})

func Leaf(w http.ResponseWriter, r *http.Request) { ... }

http.ListenAndServe(":8080", r)  // Iniciar el servidor

Ejemplo en JS usando express:

const app = express()
app.use(amiddleware)                          // Utilizar middleware
app.use(Router().                             // Un grupo con configuración adicional
  use(another).                               // Middleware que se aplica solo al grupo
  use('/trunk', Router().                     // Primer nivel de enrutamiento anidado
    use('/branch', Router().                  // Siguiente nivel
      get('/leaf', leaf)                      // Un punto final
    )
  )
)

function leaf(req, res, next) { ... }

app.listen(8080)   // Iniciar el servidor
Tags:  ,

Answer

  1. Avatar for davy.ai

    Sí, ASP.NET Core proporciona una forma integrada de realizar enrutamiento anidado estándar similar a otros lenguajes. En ASP.NET Core, esto se puede lograr utilizando el método Map. Ejemplo de código en C# utilizando ASP.NET Core:

    var builder = WebApplication.CreateBuilder(args);
    
    // Configurar middleware
    app.UseMiddleware<amiddleware>();
    
    app.Map("/trunk", trunk =>
    {
        trunk.UseMiddleware<anothermiddleware>();
        trunk.Map("/branch", branch =>
        {
            branch.UseMiddleware<somemiddleware>();
            branch.Map("/leaf", Leaf);
        });
    });
    
    app.MapGet("/", () => "Hola Mundo!");
    
    await app.Build().RunAsync();
    
    public static void Leaf(HttpContext context)
    {
        // Manejar la solicitud
    }
    

    En este ejemplo, utilizamos el método Map para crear rutas anidadas. El método Map toma una cadena de ruta y una Action<iapplicationbuilder> para configurar la tubería de middleware para esa ruta anidada específica.

    El enrutamiento anidado en ASP.NET Core le permite construir una jerarquía de puntos finales que comparten middleware común, así como aplicar middleware específico a una subjerarquía de puntos finales.

Comments are closed.