【问题标题】:Is Olingo4 backward compatible?Olingo4 向后兼容吗?
【发布时间】:2018-01-19 08:15:15
【问题描述】:

如果我在客户端 (java) 使用 Olingo4 库,它们会与 ODATA 2.x 服务兼容吗?

谢谢

【问题讨论】:

    标签: java rest odata olingo


    【解决方案1】:

    简短的回答是

    长答案是,Olingo 或任何其他库只是 OData 协议的实现。与以前的版本相比,协议的第 4 版有重大更改(读取不兼容)。

    您可以查看this link 以获取所有更改的列表,包括 OData 4 中不兼容的更改。

    现在要与 OData 2 和 OData 4 完全兼容,您可以读取客户端发送的 OData-MaxVersion 标头并根据它发送相应的响应。这将要求您同时拥有 odata 2以及在您的后端运行的 odata 4 实现(使用 Olingo 2 和 Olingo 4 或其他东西)。

    就个人而言,如果您今天刚开始并且没有充分的理由拥有两个实现,那么 OData v4 服务不需要支持较低版本的客户端。

    OData 4 服务可能会以 4XX 级错误响应 V1-V3 客户端。

    http://docs.oasis-open.org/odata/odata/v4.0/errata02/os/complete/part1-protocol/odata-v4.0-errata02-os-part1-protocol-complete.html#_Toc406398370

    【讨论】:

      【解决方案2】:

      它可能适用于一些琐碎的场景,但即使是简单的count 选项也会因不同的 OData 版本而存在很大差异:

      1. http://services.odata.org/V2/OData/OData.svc/Products/?$inlinecount=allpages&$format=json [v2]
      2. http://services.odata.org/V4/OData/OData.svc/Products?$count=true&$format=json [v4]

      Official OData page 建议 Apache Olingoodata4jJello Framework 应该有 OData 2 的客户端实现。我没有使用过Olingo 的 v2 客户端,但我听说它很差。我在 odata4jJello Framework 中找不到任何有趣的东西(快速研究)。

      在最坏的情况下,您可以使用标准 HTTP 客户端。归根结底,OData 是基于 REST 的。

      【讨论】:

        猜你喜欢
        • 2017-07-11
        • 1970-01-01
        • 2023-03-19
        • 2018-07-19
        • 2010-11-07
        • 2016-02-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多