I am working on a Asp.Net Web API project, where I need to create it in a way so that 2 different clients can consume it and get response in there desired formats.
Need to provide support for both JSON and XML formats.
I have tried something in Register method in WebApiConfig file:
public static void Register(HttpConfiguration config)
{
// Adding formatter for Json
config.Formatters.JsonFormatter.MediaTypeMappings.Add(
new QueryStringMapping("type", "json", new MediaTypeHeaderValue("application/json")));
// Adding formatter for XML
config.Formatters.XmlFormatter.MediaTypeMappings.Add(
new QueryStringMapping("type", "xml", new MediaTypeHeaderValue("application/xml")));
}
Here client can consume API but need to pass query string type=json or xml to get response in desired format.
http://localhost:1312/api/Blog?type=xml
http://localhost:1312/api/Blog?type=json
Is there a better way to detect client's desired format and respond accordingly? If we get it from header of request or something like that, TIA.


Acceptheader to decide what type of response to send