【问题标题】:How to add links to Spring Data REST projections?如何添加指向 Spring Data REST 投影的链接?
【发布时间】:2015-03-23 23:35:54
【问题描述】:

我已经创建了一个 Spring Data Rest 投影(不是摘录投影),并且只需要向它添加一些链接,因为这些链接对于同一实体的其他投影或实体本身没有意义。

据我所知,我们如何使用ResourceProcessor 来做到这一点我只能添加到实体的链接,是否可以仅为该投影添加链接?

【问题讨论】:

    标签: spring-data spring-data-rest


    【解决方案1】:

    似乎可以只创建一个专用于投影的ResourceProcessor,我可以为每个投影创建一个ResourceProcessors,一个为实体本身创建一个,它们会根据URL中提到的投影而被调用。

    @Component
    public class UserProjectionResourceProcessor 
        implements ResourceProcessor<Resource<UserProjection>> {
    
        public static final String CANCEL_REL = "cancel";
    
        @Autowired
        private EntityLinks entityLinks;
    
        @Override
        public Resource<UserProjection> process(Resource<UserProjection> resource) {
    
            UserProjection userProjection = resource.getContent();   
            resource.add(entityLinks.linkFor(User.class).withRel(CANCEL_REL));              
            return resource;
        }
    }
    

    【讨论】:

    • userProjection 从未在 process 方法中使用。这是演示 resource.getContent() 方法的问题吗?
    • 奥利弗先生,您能帮我们解决上述问题吗?谢了!
    • @GedankenNebel 我认为你是对的。 UserProjection 用于演示目的,因为您不能将Link 添加到投影界面。只能将Links添加到resources
    猜你喜欢
    • 2015-11-13
    • 2016-03-21
    • 2014-06-01
    • 2017-07-27
    • 2020-05-05
    • 2014-12-10
    • 2018-04-18
    • 2016-01-20
    • 1970-01-01
    相关资源
    最近更新 更多