【发布时间】:2017-07-06 05:49:17
【问题描述】:
我在 Spring Boot 中使用 Spring Data Rest,但情况有些奇怪。
我们需要我们的客户能够在一个 JSON 对象中发布一个资源及其所有关系,所以我们将关系设为
@RestResource( exported = false),这是我们能找到的唯一解决方案,但问题是我们输了链接我们现在正在尝试创建此资源的投影,并将其所有关系显示为链接
到目前为止,我们尝试的是使用添加了getXXX() 的非关系属性创建一个投影,然后使用ResourceProcessor 来处理this question 中的链接,但我们似乎无法让它工作
问:这是解决这个问题的最佳方法吗?我们如何像普通资源一样添加指向投影的链接?
更新 所以这是我的投影类
@Projection(name = "fullSP", types = {SP.class})
public interface FullSP {}
这是我的处理器
@Component
public class FullSPResourceProcessor implements ResourceProcessor<Resource<FullSP>> {
private final EntityLinks entityLinks;
@Autowired
public FullSPResourceProcessor(EntityLinks entityLinks) {
this.entityLinks = entityLinks;
}
@Override
public Resource<FullSP> process(Resource<FullSP> fullSPResource) {
FullSP fullSP= fullSPResource.getId();
fullSPResource.add(entityLinks.linkFor(Rate.class).withRel("rates"));
return fullSPResource;
}
}
但这不起作用,这只是将 /rates 的链接添加为资源而不是子资源
【问题讨论】:
-
一些代码会有所帮助——尤其是投影和处理器——也许还有实体
-
@MathiasDpunkt 更新了我的问题
标签: java spring spring-boot spring-data-rest