.net - 获取XML中的Web API OData v4的OData目录

标签 .net odata asp.net-web-api-odata odata-v4

我正在尝试启动并运行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/

相关文章:

C# 编译器在没有错误消息的情况下崩溃

c# - 使用 Asp.Net WebApi + EF + Odata 深度插入数据

c# - 在运行时禁用 OData V4 元数据和 Controller

java - 如何在 Olingo V4 (java) 中创建有界 Action

c# - IEqualityComparer 和 Linq Distinct - 硬代码 GetHashCode()

c# - 在 C# 应用程序中使用 LINQ to SQL 的最佳实践方法是什么? [设计模式]

c# - .Net 互联网代理

c# - 启动时出现 OData v4 错误 : Resource not found for the segment 'Whatever'

c# - OData 异常已超出 Top 查询的 '0' 限制

asp.net - 如何防止 ASP.NET Web API OData 服务中的发布不足?