I have a controller which returns a data in json. I would like that method to return XML structure and get data back to XML structure.
I have added following code to WebApiConfig:
config.Routes.MapHttpRoute(
name: "defaultapi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Routes.MapHttpRoute(
name: "VehicleApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.Formatters.XmlFormatter.SupportedMediaTypes.Add(new MediaTypeHeaderValue("text/xml"));
var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");
Global.asax.cs
GlobalConfiguration.Configuration.Formatters.Clear();
GlobalConfiguration.Configuration.Formatters.Add(new System.Net.Http.Formatting.XmlMediaTypeFormatter());
To make ASP.NET Web API return XML, you don't need to make any code changes. Just ensure you have a header like this in the HTTP request.
Accept: application/xml
See this for more info on content negotiation.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With