我们如何在不生成代理的情况下使用Odata服务

时间:2014-06-26 11:00:06

标签: web-services wcf odata

我打算OData服务建立将由商业服务消费的企业数据总线。然后,商业服务将为各种客户提供服务,如网站,智能手机等

首先,我希望在业务服务中使用Odata服务而不生成代理(不添加服务引用)。

我发现了一篇文章解释了如何在不使用服务引用here的情况下使用WCF服务。在我们将拥有服务合同和数据合同的单独项目的情况下,这看起来很棒。我们也可以为Odata服务提供类似服务吗?

2 个答案:

答案 0 :(得分:1)

我可能错了,但与WCF Soap服务不同,OData并不需要'消费的代理。它是一个http协议,响应将以纯xml或json的形式返回,而没有WCF的消息合同基础结构。您必须处理Atom Pub联合格式,但.Net有此库。

从OData服务的服务引用生成代理可能只是方便客户端使用强类型模型,但不是必需的。

要验证这一点,只需使用简单的网址请求点击您的OData服务,然后在浏览器中查看响应(关闭自动RSS阅读器)或在Fiddler中查看。如果您的业务层可以反序列化响应,那么您就可以不使用代理了。

如果您从javascript客户端访问它,有一些js库也可以帮助进行反序列化,例如JayDatadatajs

答案 1 :(得分:0)

  1. odatajs(Olingo Oclient for Javascript):http://olingo.apache.org/doc/javascript/download.html
  2. odata library(.net):http://www.nuget.org/packages/Microsoft.OData.Client/
  3. 适用于java的Olingo OData客户端:http://olingo.apache.org/doc/odata4/
  4. 更多@ http://www.odata.org/libraries/