Farklı rollere sahip birkaç kullanıcının içerdiği kaynaklara erişebileceği bir REST API'si yapıyorum.
Kapsamı basit tutmak için “öğrenci / öğretmen / sınıf” etki alanını ele alalım:
GET /students
erişmek için kaynaktır.
Kullanıcıların Öğrenci ve / veya Öğretmen gibi rolleri olabilir.
Öğrenciler yalnızca sınıflarındaki öğrencilere erişebilecekler. Öğretmenler, öğrettikleri sınıftaki öğrencilere erişebileceklerdir. Bazı kullanımlar öğrenci olabilir ve başka sınıflara da öğretebilir. Sınıflarındaki öğrencilere ve öğrettikleri sınıftaki öğrencilere erişimi olmalıdır.
İdeal olarak bunu iki işlev olarak uygulamak istiyorum - her rol için bir tane ve daha sonra bir kullanıcının birden fazla rolü varsa "birleştirme".
Sorum şu: Bunu uygulamak için hangi modeli kullanmalıyım?
haricen
- API'mı rol başına bölmeli miyim?
GET /teacher/students
veGET /student/students
bana doğru gelmiyor. - Hepsini bir kaynak olduğum gibi tut (tercih edilen)
içten
Dahili olarak nasıl uygulanmalıdır?
- Her yöntem BÜYÜK bir anahtarla mı başlamalı / rol başına ise?
- Rol başına bir depo uygulamalı mıyım?
- Bunu başarmamda bana yardımcı olacak bir tasarım deseni var mı?
Yandan bir yorum olarak: ASP.NET Web API ve Entity Framework 6 kullanıyorum , ancak kavramsal uygulama için gerçekten önemli değil.