ฉันกำลังสร้าง REST API ซึ่งผู้ใช้หลายคนที่มีบทบาทที่แตกต่างกันจะสามารถเข้าถึงทรัพยากรที่มีอยู่
เพื่อให้ขอบเขตง่ายขึ้นขอโดเมน "นักเรียน / ครู / ชั้นเรียน":
GET /students
เป็นทรัพยากรที่จะเข้าถึง
ผู้ใช้อาจมีบทบาทเช่นนักเรียนและ / หรืออาจารย์
นักเรียนจะสามารถเข้าถึงนักเรียนของชั้นเรียนของพวกเขาเท่านั้น ครูจะสามารถเข้าถึงนักเรียนของชั้นเรียนที่พวกเขาสอน การใช้งานบางอย่างอาจเป็นนักเรียนและสอนชั้นเรียนอื่น ๆ ด้วย พวกเขาจะต้องสามารถเข้าถึงนักเรียนของชั้นเรียนของพวกเขาและนักเรียนของชั้นเรียนที่พวกเขาสอน
นึกคิดฉันต้องการที่จะใช้สิ่งนี้เป็นสองฟังก์ชั่น - หนึ่งต่อบทบาทและจากนั้น "สหภาพ" ถ้าผู้ใช้มีหลายบทบาท
คำถามของฉันคือฉันควรใช้รูปแบบใดในการดำเนินการนี้
อย่างผิวเผิน
- ฉันควรแยก API ต่อบทบาทของฉันหรือไม่
GET /teacher/students
และGET /student/students
ดูเหมือนจะไม่ถูกต้องสำหรับฉัน - เก็บทุกอย่างฉันเป็นแหล่งข้อมูลเดียว (แนะนำ)
ภายใน
ควรนำไปใช้ภายในอย่างไร
- ทุกวิธีควรเริ่มต้นด้วยสวิตช์ขนาดใหญ่ / ต่อบทบาทหรือไม่
- ฉันควรใช้ที่เก็บต่อบทบาทหรือไม่
- มีรูปแบบการออกแบบที่จะช่วยฉันในการบรรลุเป้าหมายนี้หรือไม่?
ตามความเห็นด้านข้าง: ฉันใช้ASP.NET Web APIและEntity Framework 6แต่จริงๆแล้วมันไม่สำคัญสำหรับการนำแนวคิดไปใช้