Hay una diferencia fundamental entre los parámetros de consulta y los parámetros de ruta. Es así:
www.your_domain?queryparam1=1&queryparam2=2
- parámetros de consulta.
www.your_domain/path_param1/entity/path_param2
- parámetros de ruta.
Lo que me sorprendió es que en el mundo de Spring MVC muchas personas confunden una con la otra. Si bien los parámetros de consulta son más como criterios para una búsqueda, los parámetros de ruta probablemente identificarán un recurso de manera única. Dicho esto, no significa que no pueda tener múltiples parámetros de ruta en su URI, porque la estructura de recursos puede estar anidada. Por ejemplo, supongamos que necesita un recurso de automóvil específico de una persona específica:
www.my_site/customer/15/car/2
- Buscando un segundo automóvil de un 15º cliente.
¿Cuál sería un caso de uso para poner todos los parámetros de ruta en un mapa? Los parámetros de ruta no tienen una "clave" cuando miras un URI en sí, esas claves dentro del mapa se tomarán de tu anotación @Mapping, por ejemplo:
@GetMapping("/booking/{param1}/{param2}")
Desde la perspectiva HTTP / REST, los parámetros de ruta no pueden proyectarse realmente en un mapa. En mi opinión, se trata de la flexibilidad de Spring y su deseo de acomodar cualquier capricho de los desarrolladores.
Nunca usaría un mapa para parámetros de ruta, pero puede ser bastante útil para parámetros de consulta.
@RequestParam MultiValueMap<String, String>