Существует принципиальная разница между параметрами запроса и параметрами пути. Это выглядит так:
www.your_domain?queryparam1=1&queryparam2=2
- параметры запроса.
www.your_domain/path_param1/entity/path_param2
- параметры пути.
Что меня удивило, так это то, что в мире Spring MVC многие люди путают одного с другим.
Хотя параметры запроса больше похожи на критерии поиска, параметры пути, скорее всего, будут однозначно идентифицировать ресурс. Сказав это, это не означает, что вы не можете иметь несколько параметров пути в вашем URI, потому что структура ресурса может быть вложенной. Например, допустим, вам нужен конкретный автомобильный ресурс определенного человека:
www.my_site/customer/15/car/2
- ищу вторую машину 15-го покупателя.
Каким будет сценарий использования всех параметров пути на карте? Параметры пути не имеют «ключа», когда вы смотрите на сам URI, эти ключи внутри карты будут взяты из вашей аннотации @Mapping, например:
@GetMapping("/booking/{param1}/{param2}")
С точки зрения HTTP / REST параметры пути в действительности не могут быть спроецированы на карту. На мой взгляд, все дело в гибкости Spring и их желании удовлетворить любые прихоти разработчиков.
Я бы никогда не использовал карту для параметров пути, но она может быть весьма полезна для параметров запроса.