Існує принципова різниця між параметрами запиту та параметрами шляху. Виходить так:
www.your_domain?queryparam1=1&queryparam2=2
- параметри запиту.
www.your_domain/path_param1/entity/path_param2
- параметри шляху.
Мене здивувало те, що у весняному світі MVC багато людей плутають одне за іншим. Хоча параметри запиту більше схожі на критерії пошуку, парами шляху, швидше за все, однозначно ідентифікують ресурс. Сказавши це, це не означає, що ви не можете мати кілька параметрів шляху у своєму URI, оскільки структура ресурсу може бути вкладена. Наприклад, скажімо, що вам потрібен конкретний автомобільний ресурс конкретної людини:
www.my_site/customer/15/car/2
- шукає другу машину 15-го замовника.
Яким буде корисний примірник для розміщення всіх параметрів шляху на карті? Параметри шляху не мають "ключа", коли ви дивитесь на сам URI, ці ключі всередині карти будуть взяті, наприклад, із вашої анотації @Mapping:
@GetMapping("/booking/{param1}/{param2}")
З точки зору HTTP / REST перспективні параметри шляху насправді неможливо спроектувати на карту. Вся справа в гнучкості Spring та їхньому бажанні підлаштувати будь-які примхи розробників, на мою думку.
Я б ніколи не використовував карту для параметрів шляху, але це може бути дуже корисно для параметрів запиту.
@RequestParam MultiValueMap<String, String>