ฉันมีคำถามเกี่ยวกับการออกแบบ REST url ฉันพบโพสต์ที่เกี่ยวข้องบางส่วนที่นี่: การนำเสนอRESTful ที่แตกต่างกันของทรัพยากรเดียวกันและที่นี่: RESTful url to GET resource ตามช่องต่างๆแต่คำตอบยังไม่ชัดเจนว่าแนวทางปฏิบัติที่ดีที่สุดคืออะไรและเพราะเหตุใด นี่คือตัวอย่าง
ฉันมี URL REST สำหรับแสดงทรัพยากร "ผู้ใช้" ฉันสามารถรับผู้ใช้ด้วยรหัสหรือที่อยู่อีเมลได้ แต่การแสดง URL ยังคงเหมือนเดิมสำหรับทั้งสองอย่าง ผ่านบล็อกและหนังสือมากมายฉันเห็นว่าผู้คนทำสิ่งนี้ในรูปแบบต่างๆมากมาย ตัวอย่างเช่น
อ่านแบบฝึกหัดนี้ในหนังสือและที่ไหนสักแห่งใน stackoverflow (ดูเหมือนจะหาลิงค์ไม่เจออีกแล้ว)
GET /users/id={id}
GET /users/email={email}
อ่านแบบฝึกหัดนี้ในบล็อกจำนวนมาก
GET /users/{id}
GET /users/email/{email}
โดยปกติพารามิเตอร์การสืบค้นจะใช้สำหรับการกรองผลลัพธ์ของทรัพยากรที่แสดงโดย url แต่ฉันได้เห็นวิธีปฏิบัตินี้เช่นกัน
GET /users?id={id}
GET /users?email={email}
คำถามของฉันคือจากแนวทางปฏิบัติทั้งหมดนี้ข้อใดเหมาะสมที่สุดสำหรับนักพัฒนาที่ใช้ apis และเพราะเหตุใด ฉันเชื่อว่าไม่มีกฎใด ๆ ที่กำหนดไว้ในเรื่องการออกแบบ REST url และรูปแบบการตั้งชื่อ แต่ฉันแค่อยากรู้ว่าฉันควรใช้เส้นทางใดเพื่อช่วยให้นักพัฒนาเข้าใจ apis ได้ดีขึ้น
ทุกคนช่วยชื่นชม!