मैं वेब एपीआई v2 का उपयोग कर रहा हूं और मेरे पास कुछ मॉडल हैं जिन्हें मुझे सीआरयूडी संचालन करने की आवश्यकता है। उदाहरण के लिए, मेरे पास Allergy
मॉडल और Prescription
मॉडल है। एप्लिकेशन में ही मेरे पास व्यूमोडेल हैं जो उनके उपयुक्त मॉडल में बदल सकते हैं, लेकिन सादगी के लिए चलो बस कहना है कि मैं सीधे वेब एपीआई नियंत्रक में मॉडल लेता हूं।जेनेरिक वेब एपीआई नियंत्रक
तो कुछ इस तरह:
public class PrescriptionsController
{
public HttpResponseMessage Put(Prescription model)
{
// saved to the DB
}
... (other CRUD operations)
}
मैं भी है Allergy
मॉडल के लिए एक ही:
public class AllergiesController
{
public HttpResponseMessage Put(Allergy model)
{
// saved to the DB
}
... (other CRUD operations)
}
दोनों मॉडल अलग गुण होते हैं लेकिन ठीक उसी तरह से नियंत्रित किया जाता - वास्तव में मेरे पास है लगभग 3 अन्य मॉडल जिन्हें प्रत्येक सीआरयूडी ऑपरेशन के लिए बिल्कुल वही तरीके से संभाला जाता है। मुझे 5 अलग-अलग अंतराल होने से नफरत है जो मूल रूप से कॉपी और चिपकाए गए कोड हैं।
मैं एक सामान्य नियंत्रक इन मॉडलों के सभी संभाल करने बना सकते हैं:
तो मेरे सवाल है? MyCommonController<T>
की तरह कुछ? (लेकिन पाठ्यक्रम के बेहतर नाम के साथ!) क्या वेब एपीआई उस परिदृश्य में रूटिंग को संभाल सकता है? क्या यह भी एक अच्छा विचार है?
मुझे लगता है कि आप इसे विभिन्न तरीकों से प्राप्त कर सकते हैं .. रूटिंग द्वारा। मैंने कोशिश नहीं की है, लेकिन देखेंगे। – Guanxi
संभव लगता है। यहां इसके बारे में एक चर्चा है: http://stackoverflow.com/questions/12077361/generic-webapi-controller – Trisk