我正在尝试将POC放在一起,以便轻松调用Web API Odata服务。 breeze可以使用默认提供的metadatadocument的Atom / xml格式,或者它是否只能采用json格式。
我检查了web api的源代码,特别是ODataMediaTypeFomatters,并确定元数据的ODataPayloadKind不是JsonMediaTypeFormatter的一部分。
我尝试使用atom / xml格式,但是breeze客户端无法进行该调用。
提前致谢, Teja公司
答案 0 :(得分:0)
现在微风只支持json。
但是,请随意向Breeze用户语音https://breezejs.uservoice.com/forums/173093-breeze-feature-suggestions添加其他格式的请求。我们认真对待这些建议。
另外,请看一下Breeze样本zip中的新Breeze OData样本。
答案 1 :(得分:0)
我们需要将元数据格式与数据格式区分开来。 AFAIK,OData 元数据始终以XML格式返回。现在还没有元数据的JSON格式。 Breeze总是使用来自OData源的元数据的XML表示(我记得,这是一个外包给dataJS库的任务)。
OData支持各种格式的查询和保存数据,尽管越来越多的JSON是唯一似乎很重要的格式。
我猜你遇到的问题是Web API OData没有返回Breeze所需的完整元数据。它的主要缺点是它省略了支持关联的外键属性的定义。微软知道这一点,并承诺将来修复它。
与此同时,OData团队的一名成员提供了一个简单的解决方法,我们将其放入nuget包中,以使其更加轻松。
您会发现我们为Web API OData sample所描述的内容。该示例包含在完整的Breeze下载中,可从Breeze DownLoad page访问。
最后,给你一个问题。 为什么选择使用Web API OData编写应用程序而不是直接使用Web API? 我不是在判断。我很好奇。我们希望了解这些密切相关的替代方案的比较价值点。感谢。