跟随spring traverson HAL的嵌入式链接

时间:2016-11-21 10:48:29

标签: rest spring-hateoas

我可以关注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"
    }
  }
}

1 个答案:

答案 0 :(得分:1)

我认为您可以使用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