在Spring中,我们有@ExposesResourceFor
注释,可以将我们的资源与其他资源相关联。多亏了这一点,我们的Value对象(表示)对实际资源一无所知。
有没有办法在JAX-RS中执行此操作?我正在使用Dropwizard和Jersey和Jackson,我看到的是@InjectLinks
注释,我可以在这样的值对象中使用它:
public class UserGroup {
@JsonProperty
public String name;
@InjectLinks(GroupsResource.class)
public URI myResource;
public UserGroup(String name){
this.name = name;
}
}
但不幸的是,我的价值对象应该对资源一无所知,所以我要求我可以在资源水平上进行这样的链接 - 如上所述,在控制器的spring-hateoas中链接。 < / p>
答案 0 :(得分:3)
使用@InjectLinks
,您不会 来声明模型类中的链接。您可以创建一个&#34;包装器&#34; 表示类,如declarative-linking中的Jersey examples所示(尽管此解决方案实际上不是在资源类级别上你希望)。
另一种可能的解决方案(而不是声明性链接)是使用JAX-RS 2.0 Link
类,并以编程方式连接(与Jersey实现/注释无关) 。您可以添加指向响应标头的链接,如here所示,或者将Link
添加到模型类中,如here所示(或者也可以使用包装类,所以至于不侵入你的模型类)
部分资源