ฉันไม่ได้ถามคำถามที่ถามไว้แล้วที่นี่: อะไรคือความแตกต่างระหว่าง @PathParam และ @QueryParam
นี่คือ "แนวปฏิบัติที่ดีที่สุด" หรือคำถามการประชุม
เมื่อคุณจะใช้VS@PathParam
@QueryParam
สิ่งที่ฉันคิดได้ว่าการตัดสินใจอาจใช้ทั้งสองอย่างเพื่อแยกความแตกต่างของรูปแบบข้อมูล ให้ฉันอธิบายด้านล่าง LTPO ของฉัน - น้อยกว่าการสังเกตที่สมบูรณ์
การใช้ PathParam สามารถสำรองไว้สำหรับหมวดหมู่ข้อมูลซึ่งจะตกอยู่ในสาขาของแผนภูมิข้อมูล PathParam สามารถใช้ในการเจาะลึกไปยังลำดับชั้นของเอนทิตี
ในขณะที่ QueryParam อาจถูกสงวนไว้สำหรับการระบุแอตทริบิวต์เพื่อค้นหาอินสแตนซ์ของคลาส
ตัวอย่างเช่น,
/Vehicle/Car?registration=123
/House/Colonial?region=newengland
/category?instance
@GET
@Path("/employee/{dept}")
Patient getEmployee(@PathParam("dept")Long dept, @QueryParam("id")Long id) ;
VS /category/instance
@GET
@Path("/employee/{dept}/{id}")
Patient getEmployee(@PathParam("dept")Long dept, @PathParam("id")Long id) ;
VS ?category+instance
@GET
@Path("/employee")
Patient getEmployee(@QueryParam("dept")Long dept, @QueryParam("id")Long id) ;
ฉันไม่คิดว่าจะมีแบบแผนมาตรฐานในการทำเช่นนี้ มีอะไรบ้าง อย่างไรก็ตามฉันต้องการทราบว่าผู้คนใช้ PathParam กับ QueryParam อย่างไรเพื่อแยกแยะข้อมูลของพวกเขาเหมือนกับที่ฉันได้อธิบายไว้ด้านบน ฉันชอบที่จะได้ยินเหตุผลที่อยู่เบื้องหลังการฝึกฝน