Используя URL http://localhost/api/Student
, я получаю список студентов в формате XML.
Что я хотел бы сделать, так это иметь возможность вернуть либо json, либо xml на основе запрос. Таким образом, для json это будет;
http://localhost/api/Student.json
, а для XML это будет;
http://localhost/api/Student.xml
аналогично;
http://localhost/api/Student.json/1/
http://localhost/api/Student.xml/1/
I Я реализовал это в моем WebApiConfig.cs
файле.
StructuremapWebApi.Start();
config.Formatters.JsonFormatter.AddUriPathExtensionMapping("json", "application/json");
config.Formatters.XmlFormatter.AddUriPathExtensionMapping("xml", "text/xml");
// Web API routes
config.MapHttpAttributeRoutes();
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "Api UriPathExtension ID",
routeTemplate: "api/{controller}/{id}.{ext}",
defaults: new { id = RouteParameter.Optional, extension =
RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "Api UriPathExtension",
routeTemplate: "api/{controller}.{extension}/{id}",
defaults: new { id = RouteParameter.Optional, extension =
RouteParameter.Optional }
);
Как только я вызываю одну из ссылок с расширением, она возвращает HTTP Error 404.0 - Not Found
.
Я что-то упустил? Любая помощь, пожалуйста.