使用 Spring Data REST 实现更新深度嵌套 JSON 结构的最佳方法是什么?



我有许多相关资源,并在后端上有导出的存储库(Spring Data Rest)。我的客户端通过get加载" root"资源,然后通过" _links"属性加载与懒惰相关的资源。然后客户可以在加载图中修改一些资源。

我想实现服务,这将使JSON带有所有懒惰的资源,并立即更新修改后的资源。

实施此功能的最佳方法是什么?这种方法是不良习惯吗?

我并不完全理解您是什么意思,但是如果您想在SDR中加载嵌套的资源'删除它们)。例如:

@Entity
public class Parent {
   //...
   @OneToMany(cascaded = ALL, orphanRemoval = true)
   private Set<Child> children;
}
@Entity
public class Child {
   //...
}
@RepositoryRestResource
public interface ParentRepo extends JpaRepository<Parent, Long> {}
@RepositoryRestResource(exported = false)
public interface ChildRepo extends JpaRepository<Child, Long> {}

您还可以将cascade = ALL, orphanRemoval = true参数添加到OneToMany注释中。

然后,您的所有子对象都将由父对象管理,而常见的有效载荷将是这样的:

{
   "name": "parent1",
   "children": [
      {
         "name": "child1"
      },
      {
         "name": "child2"
      }
   ]
}

听起来是Graphql.com

的好地方

它允许在一个请求中获取所需的所有数据。您可以定义API并调用查询,仅请求数据的必要部分。

它也支持自定义更新。

最新更新