确定实例客户端Spring Data Rest

时间:2018-11-26 07:36:51

标签: spring spring-data-rest uniqueidentifier restful-url hateoas

我们目前正在使用Spring Data Rest构建API,该API公开了有关HATEOAS原理的资源。

在客户端,我们有一个对象X列表,每个对象X包含一组对象Y,我们通常需要针对特定​​实例进行过滤。此列表已被获取,因此我们不需要执行其他请求。特定的实例由与Y具有一对一关系的另一个对象Z决定。现在的问题是,如何在不具有实例ID的情况下最好地(以Restful,HATEOAS方式)按Y进行过滤?

基本上,问题在于一对一关系为我们提供了格式为(项目关系)的URI:

"Z": {
     "href": "https://URL/Z/3/Y"
     }

在过滤列表时,我们需要以下格式的集合标识符:

"Y": {
     "href": "https://URL/Y/9"
     }

建议:

  1. 我们可以公开实例的ID,但是不建议这样做,因为有人认为自引用链接已经是一个标识符。 (请参阅here

  2. 我们可以使用URI作为标识符。但是,由于我们仅获取了Z,因此URI的格式为“ Zentities / Zidentifier / Yentity”,而不是“ / Yentities / Yidentifier”。因此,我们将需要执行其他请求,以确定我们必须搜索的每个Y实体的自链接。

  3. 我们可以改为在后端进行搜索(即使所有资源都已在客户端加载),并使用相关对象Z的标识。这here中进行了说明。

关于(2)为什么首先使用标准格式?在Spring Data Rest中如何进行更改? (项目参考vs集合参考)

关于(3)对于特定的客户需求,应该采用多大的数据表示形式?

我非常感谢您提供解决此问题的最佳做法的建议。

亲切的问候

0 个答案:

没有答案