मैं एपीआई सहायता पृष्ठ को अपने सभी एपीआई एंडपॉइंट्स दिखाने के लिए संघर्ष कर रहा हूं, और उन्हें अपनी शैली में दिखाने के लिए संघर्ष कर रहा हूं।नेट वेब एपीआई रूटिंग और सहायता पृष्ठ
config.Routes.MapHttpRoute("Orgs", "v1/Orgs/{orgId}",
new { controller = "Orgs", orgId = RouteParameter.Optional });
config.Routes.MapHttpRoute("OrgDescendants", "v1/Orgs/{orgId}/Descendants",
new { controller = "Orgs", action = "OrgDescendants" });
यहाँ सब मेरी नियंत्रक तरीके::
यहाँ मेरी रास्ते हैं
[HttpGet]
public IEnumerable<Org> GetAllOrgs()
[HttpGet]
public Org Get(string orgId)
[HttpGet]
[ActionName("OrgDescendants")]
public List<Org> Descendants(string orgId)
[HttpPost]
public HttpResponseMessage Post(Org org)
[HttpPut]
public HttpResponseMessage Put(string orgId, Org org)
[HttpDelete]
public void Delete(string orgId)
और यहाँ अंतिम बिंदु हैं कि मदद पृष्ठ प्रदर्शित करता है:
GET v1/Orgs
POST v1/Orgs
PUT v1/Orgs/{orgId}
DELETE v1/Orgs/{orgId}
GET v1/Orgs/{orgId}/Descendants
आप के रूप में देख सकते हैं, सहायता पृष्ठ में निम्न अंतराल गुम है:
GET v1/Orgs/{orgId}
मैंने ट्रैक खोने के कई अलग-अलग रूटिंग क्रमिक प्रयासों की कोशिश की है। जो कुछ भी मैं कोशिश करता हूं मैं हमेशा कुछ अंतराल के साथ समाप्त होता हूं या 'गलत तरीके से' स्वरूपित होता हूं।
उदाहरण के लिए, मैं के साथ अंत:
GET v1/Orgs/{orgId}/Get
जब मैं चाहता हूँ:
GET v1/Orgs/{orgId}
या मैं के साथ अंत:
PUT v1/Orgs?orgId={orgId}
जब मैं चाहता हूँ:
PUT v1/Orgs/{orgId}
इससे कोई फर्क नहीं पड़ता कि मैं किस संयोजन का प्रयास करता हूं, मैं उन्हें उन सभी तरह से प्राप्त नहीं कर सकता हूं जिन्हें मैं चाहता हूं। कोई भी सहायताकाफी प्रशंसनीय होगी!
मुझे लगता है कि हेल्पपेज का अनुमान है कि 'प्राप्त करें v1/Orgs/{orgId}' मार्ग 'get (string orgId) 'और' descendants (string orgId) 'के बीच संघर्ष है। दरअसल आप शायद 'v1/Orgs/{orgId} प्राप्त करने का अनुरोध करने का प्रयास कर सकते हैं' और "एकाधिक क्रियाएं मिलीं ..." आदि जैसी कुछ त्रुटि दिखाई देनी चाहिए। –
जब मैं इस तरह नेस्टेड मार्गों को परिभाषित करता हूं तो मैं आमतौर पर सेट करता हूं नेस्टेड संसाधन एक अलग नियंत्रक के रूप में, यह आपके मामले में 'descendantsController' होगा। इस तरह आप descendants पर एक पूर्ण आराम एपीआई भी हो सकता है अगर जरूरत पड़ती है। हो सकता है कि यह एक कामकाज है जिसे आप एक्सप्लोर कर सकते हैं ... – Tallmaris
मैं वंशजों को अपने स्वयं के नियंत्रक के पास ले जाने के बारे में सोच रहा था, लेकिन चूंकि वे ऑर्ग भी हैं क्योंकि मैं उन्हें डुप्लीकेट कोड पर सहेजने के लिए एक ही नियंत्रक में रखना चाहता था। ऐसा लगता है कि उस समय के लिए सबसे अच्छा कामकाज हो सकता है। मैं इसे आज़मा दूंगा और देख सकता हूं कि यह काम करता है या नहीं। –