我可以使用spring traveson HAL库跟踪链接,我想知道是否还有任何方法可以跟踪嵌入式链接。
例如,我可以使用someLink
跟随traverson.follow("someLink")
,但是我正在寻找一种跟随someResource
self
链接的方法。
{
"name": "some name",
"_embedded": {
"someResource": [
{
"name": "some resource name",
"_links": {
"self": {
"href": "http://someEmbeddedUrl"
}
}
}
]
},
"_links": {
"someLink": {
"href": "http://someUrl"
}
}
}
最佳答案
我认为您可以使用PagedResources<Resource<SomeResource>>
。看下面的示例(SomeResource
是POJO):
Traverson.TraversalBuilder tb = traverson.follow("someLink");
ParameterizedTypeReference<PagedResources<Resource<SomeResource>>> typeRefDevices = new ParameterizedTypeReference<PagedResources<Resource<SomeResource>>>() {};
Resources<Resource<SomeResource>> resources = tb.toObject(typeRefDevices);
Resource<SomeResource> firstItem = resources.getContent().iterator().next();
firstItem.getLinks().forEach(l -> {
System.out.println(String.format("rel: %s href: %s", l.getRel(), l.getHref()));
});
对于您的示例,此代码段应打印
rel: self href: http://someEmbeddedUrl