首页 > 解决方案 > 相同的 Web API 返回多种格式

问题描述

我正在开发一个 Asp.Net Web API 项目,我需要以某种方式创建它,以便 2 个不同的客户端可以使用它并获得所需格式的响应。

需要同时支持 JSON 和 XML 格式。

我在 WebApiConfig 文件的 Register 方法中尝试了一些东西:

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")));  
}  

此处客户端可以使用 API,但需要传递查询字符串 type=json 或 xml 以获得所需格式的响应。

http://localhost:1312/api/Blog?type=xml
http://localhost:1312/api/Blog?type=json 

有没有更好的方法来检测客户所需的格式并做出相应的响应?如果我们从请求头或类似的东西中得到它,TIA。

标签: c#asp.net-web-api

解决方案


Asp.netApiController自动执行此操作

例如:

在此处输入图像描述

之后添加Accept标题就像这样

在此处输入图像描述


推荐阅读