다른 역할을 가진 여러 사용자가 포함 된 리소스에 액세스 할 수있는 REST API를 만들고 있습니다.
범위를 단순하게 유지하기 위해 "학생 / 교사 / 클래스"도메인을 살펴 보겠습니다.
GET /students
액세스 할 수있는 리소스입니다.
사용자는 학생 및 / 또는 교사와 같은 역할을 할 수 있습니다
학생들은 자신의 수업 학생 만 이용할 수 있습니다. 교사는 자신이 가르치는 수업의 학생들에게 접근 할 수 있습니다. 어떤 용도는 학생 일 수도 있고 다른 수업도 가르 칠 수도 있습니다. 학생들은 수업 시간에 학생과 수업 시간에 액세스 할 수 있어야합니다.
이상적 으로이 기능을 역할 당 하나와 사용자가 여러 역할을 가진 경우 "연합"의 두 가지 기능으로 구현하고 싶습니다.
내 질문은 : 이것을 구현하기 위해 어떤 패턴을 사용해야합니까?
외부 적으로
- 역할별로 API를 분할해야합니까?
GET /teacher/students
그리고GET /student/students
그것은 나에게 옳지 않은 것 같습니다. - 모두 하나의 리소스로 유지 (선호)
내부적으로
내부적으로 어떻게 구현해야합니까?
- 모든 방법이 역할 당 BIG 스위치로 시작해야합니까?
- 역할별로 리포지토리를 구현해야합니까?
- 이를 달성하는 데 도움이되는 디자인 패턴이 있습니까?
부수적 의견 : ASP.NET Web API 및 Entity Framework 6을 사용 하고 있지만 개념적 구현에는 실제로 중요하지 않습니다.