जिस URL पर मैं काम करने की कोशिश कर रहा हूं, वह शैली में एक है: http://somedomain.com/api/people/staff.33311 (LAST.FM जैसी साइटें अपने RESTFul और WebPage urls में सभी प्रकार के संकेतों की अनुमति देती हैं , उदाहरण के लिए " http://www.last.fm/artist/psy'aviah " LAST.FM के लिए एक वैध यूआरएल है)।
कौन से कार्य निम्नलिखित परिदृश्य में हैं: - http://somedomain.com/api/people/ - जो सभी लोगों को लौटाता है - http://somedomain.com/api/people/staff33311 - साथ ही काम करेगा, लेकिन यह वह नहीं है जो मैं ' मी के बाद मैं चाहता हूँ कि url एक "dot" को स्वीकार करे, जैसे नीचे दिए गए उदाहरण - http://somedomain.com/api/people/staff.33311 - लेकिन इससे मुझे एक
HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
मैंने निम्नलिखित चीजें स्थापित की हैं:
नियंत्रक "PeopleController"
public IEnumerable<Person> GetAllPeople() { return _people; } public IHttpActionResult GetPerson(string id) { var person = _people.FirstOrDefault(p => p.Id.ToLower().Equals(id.ToLower())); if (person == null) return NotFound(); return Ok(person); }
WebApiConfig.cs
public static void Register(HttpConfiguration config) { // Web API configuration and services // Web API routes config.MapHttpAttributeRoutes(); config.Routes.MapHttpRoute( name: "DefaultApi", routeTemplate: "api/{controller}/{id}", defaults: new { id = RouteParameter.Optional } ); }
मैं पहले से ही यह सब सुझावों का पालन करने की कोशिश की ब्लॉगपोस्ट http://www.hanselman.com/blog/ExperimentsInWackinessAllowingPercentsAnglebracketsAndOtherNaughtyThingsInTheASPNETIISRequestURL.aspx लेकिन यह अभी भी काम नहीं .. मैं भी सोचेंगे यह काफी थकाऊ है और मुझे आश्चर्य है अगर वहाँ नहीं है एक और, बेहतर और अधिक सुरक्षित तरीका है।
हमारे पास हमारी आईडी आंतरिक रूप से इस तरह है, इसलिए हमें डॉट को एक तरह से या किसी अन्य रूप में फिट करने के लिए एक समाधान खोजना होगा, अधिमानतः "की शैली में।" लेकिन अगर जरूरत हो तो मैं यूआरएल के लिए वैकल्पिक सुझाव के लिए खुला हूं ...