【发布时间】:2015-06-22 11:37:49
【问题描述】:
首先我阅读了上一个问题:Exposing link on collection entity in spring data REST
但问题仍然存在。
确实,如果我想公开收藏资源的链接,我正在使用以下代码:
@Component
public class FooProcessor implements ResourceProcessor<PagedResources<Resource<Foo>>> {
private final FooLinks fooLinks;
@Inject
public FooProcessor(FooLinks fooLinks) {
this.FooLinks = fooLinks;
}
@Override
public PagedResources<Resource<Foo>> process(PagedResources<Resource<Foo>> resource) {
resource.add(fooLinks.getMyCustomLink());
return resource;
}
}
除非集合为空,否则它可以正常工作...
唯一可行的方法是将我的以下代码替换为:
@Component
public class FooProcessor implements ResourceProcessor<PagedResources> {
private final FooLinks fooLinks;
@Inject
public FooProcessor(FooLinks fooLinks) {
this.FooLinks = fooLinks;
}
@Override
public PagedResources process(PagedResources resource) {
resource.add(fooLinks.getMyCustomLink());
return resource;
}
}
但是通过这样做,所有集合都会显示该链接。
我可以创造条件,只为我想要但我认为不干净的东西暴露。
【问题讨论】:
标签: java spring spring-data-rest spring-hateoas