2014-11-03 75 views
3

在Spring中,我们有@ExposesResourceFor注释,它可以将我们的资源与其他资源相链接。由于这个,我们的Value对象(表示)完全不知道实际的资源。有没有办法将JAX-RS资源链接到Spring HATEOAS中的其他资源?

有没有办法在JAX-RS中做到这一点?我使用Dropwizard与新泽西州和杰克逊和所有我看到的是@InjectLinks注释,我可以在一个值对象使用这样:

public class UserGroup { 
    @JsonProperty 
    public String name; 

    @InjectLinks(GroupsResource.class) 
    public URI myResource; 

    public UserGroup(String name){ 
     this.name = name; 
    } 
} 

但可惜的是我的值对象竟然一无所知资源,所以我我问我能否在资源水平上做这样的链接 - 如上所述,在控制器中的春天 - 讨厌的链接。

回答

3

@InjectLinks,你不要宣布你的模型类的链接。您可以创建一个“包装器”表示类,如Jersey examples中的declarative-linking所示(尽管此解决方案不像您希望的那样真正处于资源类级别)。

另一种可能的解决方案(而不是声明联)是使用JAX-RS 2.0 Link类,然后执行连接编程(没有联系的泽西执行/注释)。您可以将链接添加到您的响应标题中,如here,或者将Links添加到您的模型类,如看到here(或者使用包装类为此,以免侵入您的模型类)

一些资源

+0

我决定去与头的方法。谢谢! – 2014-11-03 15:28:17

相关问题