我正在使用 Spring Data JPA 和 Spring Data Rest 将我的 JPA 实体公开为 Web 服务。我的实体有数百个属性,并且 oneTo(very)Many 与其他具有数百个属性的实体的关系。
我希望用户能够传入一个查询参数,该参数允许他们只取回他们关注的 JSON 响应正文的字段。过去,我使用过 IBM 的 Rational Team Concert REST API,它们允许调用者传入 XPath 查询以选择他们想要返回的字段。他们的 XPath 集成还允许调用者在各个字段上应用过滤逻辑。例如,以下是该 API 的可能:
workitem/workItem[creator/name='Bob Sacremento' or owner/name='Bob Sacremento']/(id|summary)
^上述查询将返回其所有者或创建者的名称等于 Bob Sacremento 的所有 workItem 元素的 id 和摘要字段。
workitem/workItem/(id|summary|comments[creator/name='Bob Sacremento']/content)
^以上查询将返回所有workItem元素的id、summary和comment content字段。但它只会显示 Bob Sacremento 创建的评论。
我想用我的 API 做类似的事情。在我编写自己的控制器之前,我想我会问是否有一个框架可以开箱即用地提供此功能。似乎 Spring Data REST 没有。