En este capítulo hemos aprendido sobre el routing. El routing se usa para asociar peticiones HTTP a un método de acción en un controlador. Existen varios tipos de ruta: Literal, Segment, Regex, Hostname, Scheme, Method, etc.). Cada tipo de ruta usa diferentes partes de la URL (y en ocasiones otros datos de la petición HTTP) para comparar la URL con una plantilla de ruta especifica. Además, aprendimos como escribir clases de rutas a la medida si las capacidades de los tipos de ruta estándar no son suficientes.
La principal tarea de una clase de ruta es regresar una ruta coincidente que contiene un conjunto de parámetros con los que un controlador y una acción se pueden determinar. La tarea opuesta de una clase de ruta permite generar una URL con parámetros. Esta característica es ampliamente usada en la capa de vista de la aplicación para generar enlaces.
Los tipos de ruta se pueden combinar en un árbol anidado con la ayuda del router
TreeRouteStack
u organizar en una cadena con el router SimpleRouteStack
. Estos
dos routers permiten definir arbitrariamente reglas complejas.
La configuración del routing se almacena en el archivo de configuración del módulo
bajo la llave router
. Cada módulo tiene sus propias reglas de routing que se mezclan
con la configuración de otros módulos luego del inicio de la aplicación.