Я будую API REST, для якого кілька користувачів з різними ролями матимуть доступ до ресурсів, які він містить.
Щоб просто не було простору, візьмемо домен "студент / викладач / клас":
GET /students
є ресурсом для доступу.
Користувачі можуть мати такі ролі, як Студент та / або Вчитель
Студенти матимуть доступ лише до учнів своїх класів. Вчителі матимуть доступ до учнів класів, які вони викладають. Деякі користування можуть бути студентами, а також навчати інших класів. Вони повинні мати доступ до учнів своїх класів І до учнів класів, які вони викладають.
В ідеалі я хочу реалізувати це як дві функції - по одній на роль, а потім "об'єднати", якщо у користувача є кілька ролей.
Моє запитання: Яку модель слід використовувати для здійснення цього?
Зовнішньо
- Чи слід розділити API на роль?
GET /teacher/students
іGET /student/students
мені це не здається правильним. - Зберігайте все, що я один ресурс (бажано)
Внутрішньо
Як це потрібно впровадити внутрішньо?
- Чи повинен кожен метод починатися з великого перемикача / якщо на роль?
- Чи потрібно реалізовувати сховище на роль?
- Чи є модель дизайну, яка допоможе мені досягти цього?
В якості побічного коментаря: я використовую веб-API ASP.NET та Entity Framework 6 , але це не має значення для концептуальної реалізації.