Sorgu parametreleri ile yol parametreleri arasında temel fark vardır. Şu şekilde gider:
www.your_domain?queryparam1=1&queryparam2=2
- sorgu parametreleri.
www.your_domain/path_param1/entity/path_param2
- yol parametreleri.
Şaşırtıcı bulduğum şey, Bahar MVC dünyasında birçok insanın diğerini karıştırması. Sorgu parametreleri bir arama için ölçütlere benzemekle birlikte, yol parametreleri büyük olasılıkla bir kaynağı benzersiz olarak tanımlar. Bunu söyledikten sonra, URI'nizde birden fazla yol parametresine sahip olamayacağınız anlamına gelmez, çünkü kaynak yapısı yuvalanabilir. Örneğin, belirli bir kişinin belirli bir araba kaynağına ihtiyacınız olduğunu varsayalım:
www.my_site/customer/15/car/2
- 15. müşterinin ikinci bir arabasını aramak.
Tüm yol parametrelerini haritaya yerleştirmek için bir kullanıcı tabanı ne olurdu? Bir URI'nin kendisine baktığınızda yol parametrelerinin "anahtarı" yoktur, haritanın içindeki bu anahtarlar @Harita ek açıklamalarınızdan alınır, örneğin:
@GetMapping("/booking/{param1}/{param2}")
HTTP / REST perspektifinden yol parametreleri gerçekten bir haritaya yansıtılamaz. Her şey Spring'in esnekliği ve bence herhangi bir geliştiricinin kaprisine uyum sağlama arzusuyla ilgili.
Asla yol parametreleri için bir harita kullanmak istiyorum, ama sorgu parametreleri için oldukça yararlı olabilir.
@RequestParam MultiValueMap<String, String>