मैं एक REST API का निर्माण कर रहा हूं, जिसके लिए विभिन्न भूमिकाओं वाले कई उपयोगकर्ताओं के पास मौजूद संसाधनों तक पहुंच होगी।
दायरा सरल रखने के लिए आइए "छात्र / शिक्षक / कक्षा" डोमेन लें:
GET /students
उपयोग करने के लिए संसाधन है।
उपयोगकर्ता छात्र और / या शिक्षक की भूमिका निभा सकते हैं
छात्रों को केवल उनकी कक्षाओं के छात्रों तक ही पहुंच होगी। शिक्षक उन कक्षाओं के छात्रों तक पहुंच बनाएंगे जो वे पढ़ाते हैं। कुछ उपयोग छात्र हो सकते हैं और अन्य कक्षाएं भी सिखा सकते हैं। उन्हें अपनी कक्षाओं के छात्रों और उन कक्षाओं के छात्रों तक पहुंच होनी चाहिए जो वे पढ़ाते हैं।
आदर्श रूप से मैं इसे दो कार्यों के रूप में लागू करना चाहता हूं - एक प्रति भूमिका और फिर "संघ" यदि उपयोगकर्ता की कई भूमिकाएं हैं।
मेरा प्रश्न है: इसे लागू करने के लिए मुझे किस पैटर्न का उपयोग करना चाहिए?
बाह्य
- क्या मुझे अपनी भूमिका प्रति एपीआई विभाजित करनी चाहिए?
GET /teacher/students
औरGET /student/students
यह मुझे सही नहीं लगता। - यह सब रखो मैं एक संसाधन हूँ (पसंदीदा)
के भीतर
इसे आंतरिक रूप से कैसे लागू किया जाना चाहिए?
- क्या प्रत्येक विधि को BIG स्विच के साथ शुरू होना चाहिए / यदि प्रति भूमिका है?
- क्या मुझे प्रति भूमिका एक भंडार लागू करना चाहिए?
- क्या कोई डिज़ाइन पैटर्न है जो मुझे इसे प्राप्त करने में मदद करेगा?
एक साइड कमेंट के रूप में: मैं ASP.NET वेब एपीआई और एंटिटी फ्रेमवर्क 6 का उपयोग कर रहा हूं , लेकिन यह वैचारिक कार्यान्वयन के लिए वास्तव में मायने नहीं रखता है।