में वर्जनिंग वेब एपीआई क्रियाएं मेरे पास एक एएसपी.नेट एमवीसी 4 ऐप है। मैं सीखने के उद्देश्यों के लिए नई वेब एपीआई सुविधा का उपयोग करना चाहता हूं। मैं सीखना चाहता हूं कि एक ही एंडपॉइंट का पर्दाफाश कैसे करें, लेकिन इसके विभिन्न संस्करण प्रदान करें। दूसरे शब्दों में, मैं निम्नलिखित की तरह अंतिम बिंदुओं को बेनकाब करना चाहते हैं:एएसपी.नेट एमवीसी 4
http://mysite/1.0/Products/1
http://mysite/2.0/Products/1
यह करने के लिए की कोशिश में, मैं डिफ़ॉल्ट "नियंत्रकों" निर्देशिका के भीतर एक "एपीआई" निर्देशिका गयी। "एपीआई" निर्देशिका में, मेरे पास दो अन्य निर्देशिकाएं हैं: "संस्करण 1-0" और "संस्करण 2-0"। उन निर्देशिकाओं में से प्रत्येक में "ProductController" नामक एपीकंट्रोलर है।
मैं अपने WebApiConfig.cs फ़ाइल में निम्नलिखित मार्ग परिभाषा जोड़कर अंतिम बिंदुओं को बेनकाब करने की कोशिश की:
config.Routes.MapHttpRoute(
name: "1-0Api",
routeTemplate: "api/1.0/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
दुर्भाग्य से, मैं समझ नहीं कैसे यूआरएल मैं उपरोक्त कार्यों के माध्यम से बेनकाब करने के लिए। मैं क्या गलत कर रहा हूं? धन्यवाद!
वर्तमान में, मेरे पास केवल 1 नियंत्रक (ProductsV1 नियंत्रक) है, और मैं उस एंडपॉइंट तक नहीं पहुंच सकता। मैं क्या गलत कर रहा हूं? परियोजना में कोई अन्य बदलाव नहीं हुआ है। मैंने सचमुच एक नया एएसपी.नेट एमवीसी 4 प्रोजेक्ट शुरू किया और एक वर्जन नियंत्रक जोड़ना चाहता था। –
कई चीजें गलत हो सकती हैं। आपका नियंत्रक सार्वजनिक वर्ग नहीं हो सकता है, नियंत्रक एपीकंट्रोलर से प्राप्त नहीं हो सकता है, या कुछ और। स्थानीय मशीन पर सर्वर से आपको क्या प्रतिक्रिया मिलती है? –
मेरा नियंत्रक एक सार्वजनिक वर्ग है। नियंत्रक ApiContoller से प्राप्त होता है। मेरी स्थानीय मशीन पर, मुझे 404 मिलते हैं। यह अजीब चीज है। –