我有兩個應用程序,一個叫做bar,什麼爲我提供了HAL格式的資源。另一個是bcm消耗該服務。與RestTemplate一起使用Spring Hateoas Restservice
響應酒吧的例子是這樣的:
[
{
"name":"Brenner/in",
"_links":{
"self":{
"href":"..host/bbsng-app-rest/betrieb/15"
}
}
},
{
"name":"Dienstleistungshelfer/in HW",
"_links":{
"self":{
"href":"..host/bbsng-app-rest/betrieb/4"
}
}
},
{
...
現在,我嘗試使用,從使用Spring RestTemplate 億立方米。我的解決方案有效,但我不知道該解決方案,我想有一個更乾淨的方式。
我的客戶碼耗時RestService樣子:
@Autowired private RestTemplate template;
@Override
@SuppressWarnings("unchecked")
public BerufListe findeAlleBerufe() {
final BerufListe berufListe = new BerufListe();
final ResponseEntity<List> entity = template.getForEntity(LinkUtils.findBeruf(), List.class);
if (OK.equals(entity.getStatusCode())) {
final List<LinkedHashMap> body = entity.getBody();
for (final LinkedHashMap map : body) {
final LinkedHashMap idMap = (LinkedHashMap) map.get("_links");
String id = remove(String.valueOf(idMap.get("self")), "href=");
id = remove(id, "{");
id = remove(id, "}");
final String name = String.valueOf(map.get("name"));
final Beruf beruf = new Beruf(id, name);
berufListe.add(beruf);
}
}
return berufListe;
}
當你看到有一些醜陋的代碼。其中之一是,我沒有任何仿製藥。另一點,我得到Resource_ID非常複雜,並且我多次使用StringUtils.remove來提取自我url。
我確定春天必須有一種更方便的方式來使用HAL-Response。
謝謝你。
有任何更新,最近發佈了這個答案? – Snekse
不幸的不是。但從那時起我還沒有做過多的研究。 –
您可以使用'new ParameterizedTypeReference>(){}'來避免子類化。 –
afaulconbridge