Spring Data REST:如何指定RepositoryRestResource作为应用程序的入口点

时间:2018-02-02 02:16:43

标签: spring rest spring-data spring-data-rest

目前,导航到应用的根目录,例如

http://localhost:8080/api

返回指向所有导出资源的链接。但是,我想在这里只返回一个特定的资源(我们称之为资源StartResource)。通过遍历StartResource

中的链接,可以访问所有其他资源

在阅读Spring Data REST doc之后,我不清楚如何实现这一目标。关于导出资源的restricting部分似乎是相关的,但我不清楚exporting在这种情况下的含义 - 仍然没有导出隐藏的端点,或者没有给出端点所有?

顺便说一下,最好不要在客户端强加这个限制,但我仍然很好奇这个逻辑将如何实现。

1 个答案:

答案 0 :(得分:0)

要更改或添加指向根终结点的链接,您可以使用ResourceProcessor RepositoryLinksResource来删除所有链接,添加自己的链接,甚至创建自定义的“rootResource”并返回它而不是原来的一个:

@Component
public class RootResourceProcessor implements ResourceProcessor<RepositoryLinksResource> {

    @Override
    public RepositoryLinksResource process(RepositoryLinksResource resource) {

        // resource.removeLinks();
        // resource.add(new Link(...));
        // return resource;
        CustomRootResource rootResource = new CustomRootResource();        
        rootResource.add(new Link(...));
        return rootResource;
    }
}

@Getter
@Setter
public class CustomRootResource extends RepositoryLinksResource {
    private String test = "test";
}