Spring Data Rest PUT v.s PATCH LinkableResources



我正在使用Spring Data REST来公开我的实体及其关系。我在两个实体之间有一个一对一的关系,我正在尝试更新/更改与PUT和PATCH的关系。

我注意到Spring Data REST只允许你通过补丁更新链接的资源 -JPA映射的实体(OneToMany,ManyToOne等(,这些实体也是AggregateRoots(有一个存储库(,并被PUT忽略。

这可以在 LinkedAssociationSkippingAssociationHandler 类中看到:

if (associationLinks.isLinkableAssociation(association)) {
return;
}

这是为什么呢?这背后的原因是什么?

是因为设计希望我们将关联本身视为资源本身,如文档的这一部分所示?我可以通过带有内容类型文本/uri列表的PUT来更改关系,但这感觉不自然,需要额外的HTTP请求。

从 Spring 数据 REST 2.5.9.RELEASE 开始,关联不会在 PUT 请求上更新,而只会使用 PATCH 进行更新。

版本2.5.9.发布(2017-04-19(中的更改

DATAREST-1030 - 修补程序请求无法正确处理指向关联的链接。

有关此内容的其他链接:

DATAREST-1061:具有应用程序/JSON 媒体类型有效负载的 PUT 请求无法更新 URI 的关联@OneToOne

域驱动设计和弹簧

最新更新