【问题标题】:Is it possible to query a soap endpoint via odata?是否可以通过 odata 查询肥皂端点?
【发布时间】:2017-01-17 19:39:24
【问题描述】:

我有一个 SOAP 端点:

 <organization URL>/XRMServices/2011/Organization.svc 

我想围绕此服务创建一个 odata 包装器,以便在导航到 http://myodataservice/api/Entities$?filter=AccountNumber eq '123123'

它会从 SOAP (wsdl) 服务中检索数据,但它会允许客户端发出 odata 查询。

是否可以使用 ODATA 查询 SOAP 服务?

【问题讨论】:

    标签: c# .net soap odata dynamics-crm-2011


    【解决方案1】:

    您可以围绕 SOAP 端点创建 OData 包装器,但我认为这不值得。

    OData 服务将允许按所有属性(除其他外)进行过滤、排序和选择,而 SOAP 服务可能不允许所有这些,因此您的 OData 服务可能不得不去获取所有数据,然后后处理它失去了 OData 的主要好处,因为您可以在服务器端进行所有过滤和排序。您也可以只获取数据客户端并在那里过滤它。

    如果您的 SOAP 服务以某种方式确实具有所有这些支持,那么是的,您可以为它编写一个 OData 包装器并获得这些好处,但是将所有不同的可能查询转换为您的SOAP 服务可以处理。

    我不知道您想要 OData 包装器的原因,但看起来这可能需要做很多工作才能获得最小的收益,但这完全取决于您的用例。

    【讨论】:

    • 非常感谢汤姆,我问的原因是因为 CRM 2011 公开了soap 和odata;我们一直在尝试查询 CSDL (odata) 模型,并且功能受到极大限制,请注意,如果我们使用他们的 odata 端点,那么一切正常,但是如果我们使用提供的 CSDL 文件作为模型,则查询针对这个模型,序列化存在很多问题,看起来它构建了糟糕的 linq 查询
    • 我不认为在这种情况下包装 SOAP 服务可以解决您的问题
    猜你喜欢
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-10
    • 2012-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多