如何在 olingo v4.3 中实现实体绑定 odata 操作

How to implement an entity bound odata action in olingo v4.3

与此类似post,我正在尝试实现绑定到实体的操作

How to create a bounded action in Olingo V4 (java)

但是当我获取元数据文档时,我得到了 500,没有记录任何错误。

在上述链接问题的回答中,没有提到olingo教程中描述的getActionImport()实现,我想知道是否需要为实体绑定操作修改这个?

如何让 olingo 记录导致 500 的错误?

获取调试输出其实很简单:

handler.register(new DefaultDebugSupport());

其中处理程序是 ODataHttpHandler

有了这个,在检查 olingo-server-core 代码后,我发现:

  1. 对于绑定操作,您根本不需要 ActionImport。
  2. URL 中的操作名称需要用命名空间限定,因为 https://issues.oasis-open.org/browse/ODATA-812 尚未实现。
  3. 当我使用 org.apache.olingo.client.api.uri.URIBuilder 构建客户端 URL 时,它将实体 ID 括在单引号中,然后 olingo 服务器抛出异常,所以我恢复使用 StringBuilder