द्वारा की खोज नहीं ASP.NET वेब API सहायता पृष्ठ का उपयोग करते समय और संबंधित MVC.ApiExplorer मैं वैध मार्गों कि http के माध्यम से सुलभ हैं अभी तक ApiExplorer द्वारा की खोज नहीं कर रहे हैं। ये मार्ग केवल तभी पाए जाते हैं जब एक सामान्य रूटिंग नियम का उपयोग किया जाता है। एक और विशिष्ट नियम (सामान्य के साथ संयोजन में) का उपयोग ApiExplorer से मार्ग छिपाने लगता है।मान्य मार्गों MVC.ApiExplorer
तीन नियमों का एक उदाहरण मामला दो मार्गों किसी GET और एक नियंत्रक विधि है जो कोई क्वेरी पैरामीटर पर ध्यान पर एक पोस्ट कार्रवाई से संबंधित में जाना एमआईए। एपीआई/SomeController
public class SomeControllerController : ApiController
{
[HttpPost] public HttpResponseMessage Post(PostObject value) { ... }
[HttpGet] public IEnumerable<DisplayObject> GetAll() { ... }
[HttpGet] public DisplayObject GetById(string id) { ... }
}
routes.MapHttpRoute(
name: "ApiDefault",
routeTemplate: "api/{controller}/{id}",
defaults: new
{
id = RouteParameter.Optional
}
);
मार्गों में से एक रूटिंग नियम का उपयोग करते समय के रूप में
- पोस्ट एपीआई एक्सप्लोरर द्वारा उचित रूप से खोज कर रहे हैं
- प्राप्त: एपीआई/SomeController/{आईडी}
अभी तक जब भी कम सामान्य और अधिक सार्थक नियम जोड़ने
routes.MapHttpRoute(
name: "ApiSomeControllerDefault",
routeTemplate: "api/somecontroller/{id}",
defaults: new
{
controller = "SomeController",
id = RouteParameter.Optional
}
);
routes.MapHttpRoute(
name: "ApiDefault",
routeTemplate: "api/{controller}/{id}",
defaults: new
{
id = RouteParameter.Optional
}
);
एपीआई एक्सप्लोरर केवल रिटर्न
- प्राप्त: एपीआई/somecontroller/{आईडी}
क्या खड़ी कर रहा है मेरे कुछ मार्ग नहीं मिलेगा?
संपादित Link to Issue Report on ApiExplorer project page
मैंने अभी "एपीडीफॉल्ट" नियम को हटाने और "एपीसोम कंट्रोलर डीफॉल्ट" नियम को छोड़ने के लिए सत्यापित किया है, वास्तव में एपीएक्सप्लोरर को एक बार छुपा मार्ग उपलब्ध कराता है। – rheone
आपने एपीडीफॉल्ट नियम को कैसे हटाया? – user3654055