我正在尝试启动并运行Web API OData V4端点。
我终于做到了(从端点中删除了所有DateTime属性后),现在实体列表在JSON中。
我喜欢JSON,但是我使用LinqPad来测试我的端点。它不了解供稿中实体列表的JSON。
我已经看过,但似乎找不到找到将其更改回XML的方法,所以我在这里问。
是否可以使用XML而不是JSON来提供Web API OData v4提要的实体列表?
最佳答案
很抱歉要发布另一个答案,但是我的第一个答案太冗长了。
我找到了以下链接:V4 always returns Json,当然,最后一个建议确实有效:
在WebAPiConfig中,将 namespace 引用添加到:
using System.Net.Http.Formatting;
using System.Web.OData.Formatter;
然后添加如下内容:
var formatters = ODataMediaTypeFormatters.Create();
config.Formatters.InsertRange(0, formatters);
现在,实体列表以xml的形式返回。
不利的一面是,所有响应现在默认为次要的,冗长的xml/atom。
好处是,现在在v4中接受了
$format
请求。因此,要返回json,您可以将url发出(不弄乱标题):http://<myodataurl>?$format=application/json;odata.metadata=full
(或最小或无)但是,如前所述,LinqPad仍然无法识别v4模式,并且将无法正确连接到此端点。
关于.net - 获取XML中的Web API OData v4的OData目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25210661/