以XML格式获取Web API OData v4的OData目录

Vac*_*ano 6 .net odata asp.net-web-api-odata odata-v4

我正在尝试启动并运行Web API OData V4端点.

我终于得到了它(在从我的端点删除所有DateTime属性之后),现在实体的列表是JSON.

我喜欢JSON,但我使用LinqPad来测试我的端点.它不理解我的Feed中实体列表的JSON.

我看起来似乎无法找到一种方法将其更改回XML,所以我在这里问.

有没有办法让Web API OData v4提要的实体列表是XML而不是JSON?

mdi*_*bio 13

很抱歉发布另一个答案,但我的第一个答案太长了.我发现这个链接:V4总是返回Json,果然,最后一个建议确实有效:

在WebAPiConfig中,将命名空间引用添加到:

using System.Net.Http.Formatting;
using System.Web.OData.Formatter;
Run Code Online (Sandbox Code Playgroud)

然后添加如下内容:

var formatters = ODataMediaTypeFormatters.Create();
config.Formatters.InsertRange(0, formatters);
Run Code Online (Sandbox Code Playgroud)

实体列表现在以xml的形式返回.

缺点是,现在所有的响应都默认为不太优选的,冗长的xml/atom.

好处是,$format请求现在在v4中受到尊重.所以要回到json,你可以发出url(不会弄乱标题):( http://<myodataurl>?$format=application/json;odata.metadata=full或minimal或none)

但是,如前所述,LinqPad仍然无法识别v4架构,并且无法正确连接到此端点.