มีความแตกต่างพื้นฐานระหว่างพารามิเตอร์แบบสอบถามและพารามิเตอร์เส้นทาง มันจะเป็นเช่นนี้:
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
สิ่งที่จะเป็น usecase ที่จะนำพารามิเตอร์เส้นทางทั้งหมดลงในแผนที่? พารามิเตอร์พา ธ ไม่มี "คีย์" เมื่อคุณดู URI เองคีย์เหล่านั้นในแผนที่จะถูกนำมาจากคำอธิบายประกอบ @Mapping ของคุณตัวอย่างเช่น:
@GetMapping("/booking/{param1}/{param2}")
จากพารามิเตอร์พา ธ มุมมอง HTTP / REST ไม่สามารถฉายลงบนแผนที่ได้จริงๆ มันเป็นเรื่องของความยืดหยุ่นของสปริงและความปรารถนาของพวกเขาในการรองรับนักพัฒนาใด ๆ ในความคิดของฉัน
ฉันจะไม่ใช้แผนที่สำหรับพารามิเตอร์พา ธ แต่มันมีประโยชน์มากสำหรับพารามิเตอร์เคียวรี
@RequestParam MultiValueMap<String, String>