0

我现在正在尝试构建一个 POC,以便轻松调用 Web API Odata 服务。可以轻而易举地使用默认提供的元数据文档的 Atom/xml 格式,或者它应该仅采用 json 格式。

我检查了 web api 的源代码,特别是 ODataMediaTypeFomatters 并确定元数据的 ODataPayloadKind 不是 JsonMediaTypeFormatter 的一部分。

我尝试使用 atom/xml 格式,但微风客户端无法进行该调用。

提前致谢, Teja

4

2 回答 2

0

现在微风只支持json。

但是,请随时向 Breeze 用户语音添加对其他格式的请求https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions。我们认真对待这些建议。

另外,请查看 Breeze 示例 zip 中的新 Breeze OData 示例。

于 2014-03-04T18:21:18.687 回答
0

我们需要区分元数据格式和数据格式。AFAIK,OData元数据始终以 XML 形式返回。元数据现在没有,也从来没有 JSON 格式。而且 Breeze 一直使用来自 OData 源的元数据的 XML 表示(我记得这是一项外包给 dataJS 库的任务)。

OData 支持多种格式的查询和保存数据,尽管 JSON 似乎越来越重要。

我猜您遇到的问题是 Web API OData 没有返回 Breeze 所需的完整元数据。它的主要缺陷是它省略了支持关联的外键属性的定义。微软知道这一点,并承诺在未来修复它。

同时,OData 团队的一名成员提供了一个简单的解决方法,我们将其放入 nuget 包中以使其更容易。

您会发现我们的Web API OData 示例对此进行了描述。该示例包含在完整的 Breeze 下载中,可从Breeze 下载页面访问。

最后,问你一个问题。为什么选择使用 Web API OData 而不是直接的 Web API 来编写应用程序? 我不评判。我很好奇。我们想了解这些密切相关的替代品的比较价值点。谢谢。

于 2014-03-04T18:35:23.200 回答