Ada perbedaan mendasar antara parameter kueri dan parameter jalur. Bunyinya seperti ini:
www.your_domain?queryparam1=1&queryparam2=2
- parameter kueri.
www.your_domain/path_param1/entity/path_param2
- parameter jalur.
Apa yang saya temukan mengejutkan adalah bahwa di dunia Spring MVC banyak orang bingung satu sama lain. Sementara parameter kueri lebih seperti kriteria untuk pencarian, params jalur kemungkinan besar akan secara unik mengidentifikasi sumber daya. Karena itu, itu tidak berarti bahwa Anda tidak dapat memiliki beberapa parameter lintasan di URI Anda, karena struktur sumber daya dapat disarangkan. Sebagai contoh, katakanlah Anda membutuhkan sumber daya mobil spesifik dari orang tertentu:
www.my_site/customer/15/car/2
- Mencari mobil kedua dari pelanggan ke-15.
Apa yang akan menjadi usecase untuk menempatkan semua parameter jalur ke peta? Parameter jalur tidak memiliki "kunci" ketika Anda melihat URI itu sendiri, kunci-kunci di dalam peta akan diambil dari penjelasan @ Pemetaan Anda, misalnya:
@GetMapping("/booking/{param1}/{param2}")
Dari HTTP / REST, parameter jalur perspektif tidak dapat diproyeksikan ke peta. Ini semua tentang fleksibilitas Spring dan keinginan mereka untuk mengakomodasi keinginan pengembang, menurut pendapat saya.
Saya tidak akan pernah menggunakan peta untuk parameter jalur, tetapi ini bisa sangat berguna untuk parameter kueri.
@RequestParam MultiValueMap<String, String>